wpf数据绑定时的默认组合框项

本文关键字:组合 默认 数据 绑定 定时 wpf | 更新日期: 2023-09-27 18:14:01

我遵循了将组合框绑定到枚举的教程并产生了这样的XML代码:

    <ComboBox 
        DisplayMemberPath="Key"
        SelectedValuePath="Value"
        ItemsSource="{Binding VolumeLevelList}"
        SelectedValue="{Binding SelectedVolumeLevel, ValidatesOnDataErrors=True, Mode=TwoWay}"
        Height="23" HorizontalAlignment="Left" Margin="189,70,0,0" 
        VerticalAlignment="Top" Width="120" />

我正在寻找一种方法来选择默认选项,如

SelectedIndex = " 0 "

wpf数据绑定时的默认组合框项

我从教程中下载了代码,注意到缺少了一些东西。在MainViewModel中,INotifyPropertyChanged是正确实现的,但是SelectedVolumeLevel属性没有在set上调用RaisePropertyChanged()方法。这意味着当您更新组合框时,源不会得到更新。SelectedIndex不起作用的原因是因为SelectedValue已经设置并绑定到源。要解决这个问题,在MainViewModel中添加一个支持字段,如下所示:

private VolumeLevel selectedVolumeLevel = VolumeLevel.LowVolume; // Default is set to low

然后将SelectedVolumeLevel属性更改为:

public VolumeLevel SelectedVolumeLevel
{
    get { return selectedVolumeLevel; }
    set { selectedVolumeLevel = value; RaisePropertyChanged("SelectedVolumeLevel"); }
}

现在,每当组合框中选择的项被更改时,源代码就会正确更新。这也可以解决默认选择的问题。