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" /> 我正在寻找一种方法来选择默认选择,例如
但那不起作用.. 解决方法
我从教程中下载了代码并注意到缺少某些东西.在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"); } } 现在,每次更改组合框中的选定项目时,源都会正确更新.这也应该修复您的默认选择问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |