不显示 WPF 组合框的选定值
本文关键字:显示 WPF 组合 | 更新日期: 2023-09-27 18:30:20
我有一个xml文件如下:-
<Root>
<Level>
<id>1</id>
<display>Level1</display>
</Level>
<Level>
<id>2</id>
<display>Level2</display>
</Level>
</Root>
我有一个WPF组合框:-
<ComboBox x:Name="cmbLevel" HorizontalAlignment="Left" Margin="73,73,0,0" VerticalAlignment="Top" Width="120"
SelectedValuePath="id" SelectedValue="{Binding XPath=/Root/Level/id}"
ItemsSource="{Binding XPath=/Root/Level}"
IsSynchronizedWithCurrentItem="True" />
插入和显示效果很好,但是问题是当我想用选定的值填充此组合框时。
目前我有以下内容
private void InitCombo(XDocument xdoc, ComboBox comboBox, string NodeName)
{
var displayItems = from ele in xdoc.Descendants(NodeName)
select new
{
id = (string)ele.Element("id"),
display = (string)ele.Element("display")
};
comboBox.DisplayMemberPath = "display";
comboBox.SelectedValuePath = "id";
comboBox.ItemsSource = displayItems.ToList();
}
然后我添加所选值,如下所示:
cmbLevel.SelectedValue = level;
我是否需要添加任何其他内容才能在我的组合框中显示所选值?我需要重新绑定组合框吗?
感谢您的帮助和时间
您似乎对使用ComboBox
选择选项有些困惑。我建议您阅读 MSDN 上的"如何:使用 SelectedValue"、"SelectedValuePath 和 SelectedItem"页以获取帮助。有许多方法可以在ComboBox
中进行选择,所有这些方法都在链接的文章中进行了明确描述。
从 MSDN:
DisplayMemberPath:获取或设置源对象上值的路径,以用作对象的可视表示形式。
SelectedValue:获取或设置通过使用 SelectedValuePath 获取的 SelectedItem 的值。
SelectedValuePath:获取或设置用于从 SelectedItem 获取 SelectedValue 的路径。
SelectedItem:获取或设置当前所选内容中的第一项,如果所选内容为空,则返回 null
另外,为什么要在代码和 XAML 中设置相同的属性?