Я создал очень простой ViewModel, который содержит следующую коллекциюWPF TwoWay ComboBox привязки не обновляя
public ObservableCollection<Reader> Readers
{
get
{
if(_readers == null)
{
_readers = new ObservableCollection<Reader>();
}
return _readers;
}
set
{
_readers = value;
}
}
и когда сборщик числа изменяется я добавить читатель к коллекции, как так:
_activeServer.Readers.Add(Readers.Instance.AllReaders[0]);
Я поставил DataContext как класс, содержащий коллекцию читателей и я пытаюсь связать ListBox из ComboBoxes к элементам следующим образом:
<ListBox Name="_lbLanes"
BorderThickness="0"
Height="200"
ScrollViewer.HorizontalScrollBarVisibility="Hidden"
ItemsSource="{Binding Readers}" >
<ListBox.ItemTemplate>
<DataTemplate>
<ComboBox Name="_cbReaders"
Margin="0,0,0,10"
ItemsSource="{Binding Source={x:Static models:Readers.Instance}, Path=AllReaders}"
DisplayMemberPath="Name"
SelectedItem="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
MinWidth="400">
</ComboBox>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
Вы можете видеть, что я привязываюсь к себе и установил режим TwoWay.
Кроме того, я попытался SelectedValue, а также SelectedItem быть связанными и оба производят следующую задачу ...
Когда я нажимаю сохранить, чтобы зафиксировать страницу проверить содержимое коллекции Readers для пункта и все устанавливаются на его начальное значение, которое равно Readers.Instance.AllReaders [0] , что было бы правильно, я думаю, если бы я не хотел использовать двустороннюю привязку, но я это делаю, возможно ли это, или я должен пойти и вручную получить элементы, выбранные во всех списках?
Спасибо заранее за нашли время, чтобы ответить
Dan