C# 数据绑定时的wpf默认组合框项
我在学习教程 并产生了以下XML代码:C# 数据绑定时的wpf默认组合框项,c#,wpf,data-binding,combobox,C#,Wpf,Data Binding,Combobox,我在学习教程 并产生了以下XML代码: <ComboBox DisplayMemberPath="Key" SelectedValuePath="Value" ItemsSource="{Binding VolumeLevelList}" SelectedValue="{Binding SelectedVolumeLevel, ValidatesOnDataErrors=True, Mode=TwoWay}"
<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"); }
}
现在,每次更改组合框中的选定项时,源都会正确更新。这也将解决您的默认选择问题。您如何将索引设置为0?在代码隐藏中?@programmer93否,正如组合框中的属性XMLMy对未完成的代码表示歉意。该示例项目已为将来导航到该站点的任何人更新。