我想选择组合框项的字符串值,但我有一个问题。简单的测试:
<ComboBox SelectedItem="text1" ItemsSource="{Binding MyListOfStrings}">
</ComboBox>
MyListOfStrings有字符串列表"text1", "text2", "text3"。这样可以很好地工作- text1被选中。
但是下面的方法不起作用:
<ComboBox SelectedItem="text1">
<ComboBoxItem>text1</ComboBoxItem>
<ComboBoxItem>text2</ComboBoxItem>
<ComboBoxItem>text3</ComboBoxItem>
</ComboBox>
有什么问题吗?如果我在XAML中定义项目,为什么WPF找不到text1 ?
注:实际上SelectedItem使用了数据绑定,我只是简化了这个例子。
您可以将ComboItem
设置为Selector.IsSelected="True"
<ComboBox>
<ComboBoxItem Selector.IsSelected="True">text1</ComboBoxItem>
<ComboBoxItem>text2</ComboBoxItem>
<ComboBoxItem>text3</ComboBoxItem>
</ComboBox>
编辑:如果你正在使用绑定,创建一个ComboBoxItem属性
public ComboBoxItem MyProperty
{
get
{
ComboBoxItem ci = new ComboBoxItem();
ci.Content = "text1";
return ci;
}
}
和
绑定SelectedItem="{Binding Path=MyProperty}"
我猜它不起作用,因为ComboBoxItem不是字符串,并且没有从字符串到ComboBoxItem的转换器。但是ComboBoxItem提供了一个你可以使用的"IsSelected"属性