0
我创建了一个非常简单的视图模型包含以下收集WPF双向组合框绑定更新不及时
public ObservableCollection<Reader> Readers
{
get
{
if(_readers == null)
{
_readers = new ObservableCollection<Reader>();
}
return _readers;
}
set
{
_readers = value;
}
}
,当一些选择器改变我添加一个Reader来收集像这样:
_activeServer.Readers.Add(Readers.Instance.AllReaders[0]);
我已将DataContext设置为包含Readers集合的类,并尝试将ComboBoxes的ListBox绑定到项目如下:
<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.Instance.AllReaders [0] 这将是正确的我猜如果我不想双向绑定,但我这样做,这是可能的,或者我必须去手动获取在所有组合框中选择的项目?
提前感谢您抽出时间回复
丹