首页 > 解决方案 > 如何将组合框绑定到 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 列表中选择的值。

绑定可观察集合并将组件设置为适当值的正确方法是什么?

标签: c#wpfdata-bindingcombobox

解决方案


绑定可观察集合并将组件设置为适当值的正确方法是什么?

正确的方法是将 的SelectedItem属性绑定到您在视图模型类中ComboBox设置的视图模型的源属性。formatsList[2]

您无法决定哪个项目是视图中的“确定”项目。决定这一点并返回视图绑定到的“确定”的是视图模型。请记住,您的应用程序逻辑应该在视图模型类中实现。

如果出于某种原因您总是希望最初绑定到第三个项目,您不妨将SelectedIndex属性硬编码到2XAML 中。


推荐阅读