5

我正在按照教程将组合框绑定到枚举 并得出以下 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" />

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

选定索引=“0”

但这不起作用..

4

1 回答 1

3

我从教程下载了代码,并注意到缺少一些东西。在MainViewModel,INotifyPropertyChanged中正确实现,但是,该SelectedVolumeLevel属性不会调用RaisePropertyChanged()on 上的方法set。这意味着当您更新组合框时,源不会更新。你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"); }
}

现在,每次更改组合框中的选定项目时,源都会正确更新。这也应该解决您的默认选择问题。

于 2013-05-16T16:19:22.950 回答