为什么 SelectedItem 属性不适用于 ComboBoxItem 字符串?
我想通过组合框项目的字符串值来选择它们,但我有一个问题。 一个简单的测试:
<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?
PS 实际上SelectedItem使用数据绑定,我只是简化了示例。
I want to select combobox items by their string value but I have a problem.
A simple test:
<ComboBox SelectedItem="text1" ItemsSource="{Binding MyListOfStrings}">
</ComboBox>
MyListOfStrings has list with strings "text1", "text2", "text3". This way it works fine - the text1 gets selected.
But the following way does not work:
<ComboBox SelectedItem="text1">
<ComboBoxItem>text1</ComboBoxItem>
<ComboBoxItem>text2</ComboBoxItem>
<ComboBoxItem>text3</ComboBoxItem>
</ComboBox>
What is wrong with it? Why WPF cannot find text1 if I define items in XAML?
P.S. Actually SelectedItem uses data binding, I just simplified the example.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用
Selector.IsSelected="True"
为该ComboItem
设置所选项目编辑:
如果您使用 Binding,请创建一个 ComboBoxItem 属性
并 Bind
you can set the selected item with
Selector.IsSelected="True"
for thatComboItem
Edit :
if you are using Binding, creat a ComboBoxItem property
and Bind
我想它不起作用,因为 ComboBoxItem 不是字符串,并且没有从字符串到 ComboBoxItem 的转换器。
但 ComboBoxItem 提供了一个您可以使用的“IsSelected”属性。
I guess it doesn't work because ComboBoxItem is not a string, and there is no converter from string to ComboBoxItem.
But ComboBoxItem offers a "IsSelected" property that you could use.