我尝试将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>发布于 2018-09-26 05:47:51
Text属性绑定正在覆盖所选内容。
方法1-如果不希望从VM设置Mode项,则将绑定Combobox更改为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>方法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");
}
}https://stackoverflow.com/questions/52510635
复制相似问题