drt*_*rtf 5 c# data-binding wpf combobox
我正在按照教程将一个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" />
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种方法来选择默认选择,例如
的SelectedIndex = "0"
但那不起作用..
我从教程中下载了代码,发现缺少一些东西。在 中MainViewModel
,INotifyPropertyChanged
已正确实现,但是该SelectedVolumeLevel
属性不会调用RaisePropertyChanged()
上的方法set
。这意味着当您更新组合框时,源不会更新。SelectedIndex
您不起作用的原因是因为它SelectedValue
已经设置并绑定到源。要解决此问题,请向您添加一个支持字段,MainViewModel
如下所示:
private VolumeLevel selectedVolumeLevel = VolumeLevel.LowVolume; // Default is set to low
Run Code Online (Sandbox Code Playgroud)
然后将SelectedVolumeLevel
属性更改为:
public VolumeLevel SelectedVolumeLevel
{
get { return selectedVolumeLevel; }
set { selectedVolumeLevel = value; RaisePropertyChanged("SelectedVolumeLevel"); }
}
Run Code Online (Sandbox Code Playgroud)
现在,每次组合框中选定的项目发生更改时,源都会正确更新。这也应该可以解决您的默认选择问题。
归档时间: |
|
查看次数: |
3043 次 |
最近记录: |