Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据绑定时的wpf默认组合框项_C#_Wpf_Data Binding_Combobox - Fatal编程技术网

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

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}"

我在学习教程 并产生了以下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"); }
}

现在,每次更改组合框中的选定项时,源都会正确更新。这也将解决您的默认选择问题。

您如何将索引设置为0?在代码隐藏中?@programmer93否,正如组合框中的属性XMLMy对未完成的代码表示歉意。该示例项目已为将来导航到该站点的任何人更新。