2013-08-21 4 views
1

У меня есть ListView, который содержит набор объектов как itemssource и выбранный объект как SelectedItem.Выберите элемент ListView, если выбрано поле со списком/текстовое поле WPF MVVM

<ListView Margin="5 0 5 0" ItemsSource="{Binding ObjectCollection}" SelectedItem="{ 
Binding SelectedObject}" Grid.Row="1"> 

Внутри ListView.View У меня есть несколько GridViewColumn с, что каждый из которых имеет CellTemplate

<GridViewColumn CellTemplate="{StaticResource ReferenceToCellTemplate}" Header="{ 
Binding ColumnName, Converter={StaticResource upperConverter}}" Width="90" 
HeaderContainerStyle="{StaticResource StaticGridViewColumnHeaderStyleWhite}"/> 

Пример такого шаблона:

<DataTemplate x:Key="ReferenceToCellTemplate"> 
    <ComboBox ItemsSource="{Binding PossibleValuesForProperty, UpdateSourceTrigger= 
PropertyChanged}" SelectedItem="{Binding SelectedProperty, UpdateSourceTrigger= 
PropertyChanged}" SelectionChanged="Protocol_ComboBox_SelectionChanged"/> 
</DataTemplate> 

Теперь вопрос:

Скажите, что у меня есть 2 comboboxes в этом списке. например, combobox с различным программным обеспечением, а другой с различными версиями этого программного обеспечения.

Всякий раз, когда программное обеспечение было изменено в определенной строке, возможные версии должны быть обновлены.

Вопрос: Как узнать, к какому объекту принадлежит программное обеспечение combobox, чтобы я мог настроить возможные варианты для этого объекта?

При изменении значения внутри выпадающего знака это не означает, что строка выбрана. Поэтому, когда я пытаюсь настроить версии вместе с выбранной строкой, я мог бы также настроить неправильную строку.

Так как я вижу это есть 2 возможности:

  • Выбрать данную строку, когда отрегулирован то внутри этой строки/выбранные
  • Узнают, какая строка измененная/выбрана управление осуществляется без его выбора

Любая помощь будет очень признательна.

+0

Вы знаете, что объект ObjectCollection? Я мог бы использовать ListView.SelectedIndex в последнем случае. – Arhiman

+0

И вы определяете обработчик ComboBox.SelectionChanged в кодировке? – Arhiman

+0

Да, у меня есть определенный обработчик. И проблема в том, что выбранный индекс все равно может быть 3, например, когда это изменено в 5-й строке ... –

ответ

0

Решение состоит в том, чтобы не использовать обработчик события для изменения свойства, а просто для обработки изменений свойств объекта строки. Поэтому, когда изменяется свойство для «программного обеспечения», вызовите метод, который настраивает свойство «Возможные свойства» для этого программного обеспечения. Все это внутри виртуальной машины для объекта строки.

Базовый новичок MVVM error Я думаю,

Смежные вопросы