加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 05:39:33 所属栏目:百科 来源:网络整理
导读:我正在按照教程 Binding a comboBox to an Enum 并推出了这个XML代码: ComboBox DisplayMemberPath="Key" SelectedValuePath="Value" ItemsSource="{Binding VolumeLevelList}" SelectedValue="{Binding SelectedVolumeLevel,ValidatesOnDataErrors=True,Mo
我正在按照教程 Binding a comboBox to an 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" 
        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"); }
}

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读