如何设置SelectedIndex?

时间:2018-09-26 05:39:52

标签: c# wpf combobox

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

有什么我想念的吗?

我的XAML代码:

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

1 个答案:

答案 0 :(得分:1)

Text属性绑定将覆盖选择。

方法1-如果不想从VM设置Mode项,请将绑定OneWayToSource更改为Combobox

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

方法2-从xaml中删除SelectedIndex,并通过属性设置Text

 <ComboBox Grid.Row="1" Text="{Binding Path=DataMode}" Grid.ColumnSpan="2" Height="20" Width="100" >
        <ComboBoxItem Content="Read"></ComboBoxItem>
        <ComboBoxItem Content="Subscribe"></ComboBoxItem>
    </ComboBox>

在VM中-

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

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