如何根据我的数据绑定显示组合框中的第一项

本文关键字:一项 何根 我的 数据绑定 组合 显示 | 更新日期: 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,除非您计划在视图模型中手动更改此属性的值。