Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.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# 如何设置SelectedIndex?_C#_Wpf_Combobox - Fatal编程技术网

C# 如何设置SelectedIndex?

C# 如何设置SelectedIndex?,c#,wpf,combobox,C#,Wpf,Combobox,我已尝试将SelectedIndex属性设置为0,以便在用户控件呈现时显示“Read”,但它不起作用。它没有显示任何内容,但当我单击组合框时,我确实看到了我的所有项目 有什么我遗漏的吗 我的XAML代码: <ComboBox SelectedIndex="0" Grid.Row="1" Grid.ColumnSpan="2" Text="{Binding Path=DataMode}"> <ComboBoxItem Content="Read"></Comb

我已尝试将SelectedIndex属性设置为0,以便在用户控件呈现时显示“Read”,但它不起作用。它没有显示任何内容,但当我单击组合框时,我确实看到了我的所有项目

有什么我遗漏的吗

我的XAML代码:

<ComboBox SelectedIndex="0" Grid.Row="1" Grid.ColumnSpan="2" Text="{Binding Path=DataMode}">
    <ComboBoxItem Content="Read"></ComboBoxItem>
    <ComboBoxItem Content="Subscribe"></ComboBoxItem>
</ComboBox>

文本
属性绑定正在覆盖选择

方法1-如果不想从VM设置
组合框
项,请将绑定
模式
更改为
OneWayToSource

 <ComboBox SelectedIndex="0" Grid.Row="1" Grid.ColumnSpan="2" Text="{Binding Path=DataMode, Mode=OneWayToSource}">
        <ComboBoxItem Content="Read"></ComboBoxItem>
        <ComboBoxItem Content="Subscribe"></ComboBoxItem>
    </ComboBox>
在虚拟机中-

private string dataMode;
    public string DataMode
    {
        get
        {
            if (string.IsNullOrEmpty(dataMode))
            {
                return "Read";
            }

            return dataMode;
        }
        set
        {
            dataMode = value;
            RaisePropertyChanged("DataMode");
        }
    }

是的,很有效。非常感谢。我尝试了一些活动,它也起了作用。但这是错误的方式,不是吗?private void ComboboxMode_Loaded(object sender,RoutedEventTargets e){ComboxMode.SelectedIndex=0;}欢迎,绑定总是比WPF(MVVM)中的事件更受欢迎。我刚刚改变了这一点。。Text=“{Binding Path=DataMode,Mode=OneWayToSource}”>及其工作方式。
private string dataMode;
    public string DataMode
    {
        get
        {
            if (string.IsNullOrEmpty(dataMode))
            {
                return "Read";
            }

            return dataMode;
        }
        set
        {
            dataMode = value;
            RaisePropertyChanged("DataMode");
        }
    }