的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}"/>
当我打开我的应用程序时,ComboBox没有显示任何默认项目。但项目列表正在运行,其中包含所有项目。请帮忙,如果需要图像,请询问。 感谢。
答案 0 :(得分:0)
这是我一直使用的方法。
首先,您的视图模型应该有两个属性,一个用于表示集合,另一个用于表示所选项目。
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();
}
这将确保始终选择第一个项目。您不需要在INotifyPropertyChanged
属性上实施SelectedObject
,除非您计划在视图模型中手动更改此属性的值。