WPF TwoWay связывает некоторые элементы с ObservableCollection

Мне нужно привязать несколько ComboBox к одному ObservableCollection. У меня есть это ListView.

<ListView x:Name="lwCoefTables" Grid.Column="1" ItemsSource="{Binding Source={StaticResource CollectionCoefContainers}}">
<ListView.ItemTemplate>
    <DataTemplate>
        <ComboBox x:Name="cmbCoefTableTypes" ItemsSource="{Binding Source={StaticResource CollectionCoefLinksTable}}"  
                SelectedItem="{Binding CoefLinksTableType, Mode=TwoWay}" Grid.Column="1" VerticalAlignment="Center" 
                HorizontalAlignment="Left" Width="180" DisplayMemberPath="Name">
        </ComboBox>
    </DataTemplate>
</ListView.ItemTemplate>

Я хочу привязать свою коллекцию ко всем ComboBox и сохранить выбранные элементы для каждого ComboBox. Если я заполню одну коллекцию и привяжу ее ко всем выпадающим спискам в режиме TwoWay, я получу следующее:

Изображение

Я думаю, мне нужен вспомогательный класс, который будет содержать несколько похожих коллекций. Как это сделать?


person algreat    schedule 06.10.2011    source источник


Ответы (1)


Итак, я предполагаю, что свойство CoefLinksTableType относится к элементам внутри CollectionCoefContainers?

В этом случае это должно сработать, если только один и тот же экземпляр повторяется внутри CollectionCoefContainers.

e.g.

Что-то подобное будет вести себя так, как вы описываете.

var vm = new VM();
CollectionCoefContainers.Add(vm);
CollectionCoefContainers.Add(vm);
CollectionCoefContainers.Add(vm);
CollectionCoefContainers.Add(vm);

Решение было бы

CollectionCoefContainers.Add(new VM());
CollectionCoefContainers.Add(new VM());
CollectionCoefContainers.Add(new VM());
CollectionCoefContainers.Add(new VM());

Было бы полезно иметь определения CollectionCoefContainers и CollectionCoefLinksTable.

person Ray    schedule 06.10.2011