c# - 如何将组合框绑定到 ObservableCollection 列表中的某个项目 - WPF?
问题描述
我有这个代码:
C#:
public ObservableCollection<My_EDMX_Table> formatsList = new ObservableCollection<My_EDMX_Table>();
XAML:
<ComboBox
Grid.Row="1"
Grid.Column="5"
Margin="0, 5, 5, 5"
Name="CB_1"
ItemsSource="{Binding formatsList}"
SelectedValue="{Binding formatsList[2], Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="True"
Opacity="1"
DisplayMemberPath="formatNaziv"
SelectionChanged="CB_1_SelectionChanged" />
我想绑定列表中的某些项目,在本例中是formatsList 中的第一个元素。虽然应用程序编译我没有将我的组合框设置为从其 ItemSource 列表中选择的值。
绑定可观察集合并将组件设置为适当值的正确方法是什么?
解决方案
绑定可观察集合并将组件设置为适当值的正确方法是什么?
正确的方法是将 的SelectedItem
属性绑定到您在视图模型类中ComboBox
设置的视图模型的源属性。formatsList[2]
您无法决定哪个项目是视图中的“确定”项目。决定这一点并返回视图绑定到的“确定”的是视图模型。请记住,您的应用程序逻辑应该在视图模型类中实现。
如果出于某种原因您总是希望最初绑定到第三个项目,您不妨将SelectedIndex
属性硬编码到2
XAML 中。