繁体   English   中英

数据绑定时wpf默认的comboBox项

[英]wpf default comboBox item when data-binding

我正在按照教程将一个comboBox绑定到一个Enum,并推出了这个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”

但那不起作用..

我从教程中下载了代码并注意到缺少某些东西。 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"); }
}

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM