如何根据我的数据绑定显示组合框中的第一项
本文关键字:一项 何根 我的 数据绑定 组合 显示 | 更新日期: 2023-09-27 17:56:57
Xaml:
<ComboBox Grid.Row="1"
Name="CmbClasse"
Grid.Column="3"
Margin="5,5,5,5"
ItemsSource="{Binding DataContext.Classeses}"
SelectedValuePath="ClasseId"
DisplayMemberPath="ClasseName"
SelectedValue="{Binding DataContext.CurrentSelectedPersonagem.IdClasse, Mode=TwoWay}"/>
当我打开我的应用程序时,组合框没有显示任何默认项。但是项目列表正在工作,上面有所有项目。请帮忙,如果需要图像,请询问。谢谢。
这是我一直在使用的方法。
首先,视图模型应具有两个属性,一个用于表示集合,另一个用于表示所选项。
public IEnumerable<YourObject> MyObjects { get; private set; }
public YourObject SelectedObject { get; private set; }
注意:最好使用 ObservableCollection
进行MyObjects
,并实现INotifyPropertyChanged
。仅当需要在视图模型中创建集合的全新实例时,才使用此选项。
然后,ComboBox
应绑定到这些属性,如下所示:
<ComboBox ItemsSource="{Binding MyObjects}"
SelectedItem="{Binding SelectedObject}"
...
/>
现在,魔力来了。创建集合时,只需将SelectedObject
设置为列表中的FirstOrDefault
项即可。
private void LoadData()
{
//TODO: Load the data into the collection
//Set the first item
this.SelectedObject = MyObjects.FirstOrDefault();
}
这将确保始终选择第一项。无需在 SelectedObject
属性上实现INotifyPropertyChanged
,除非您计划在视图模型中手动更改此属性的值。