Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF组合框的选定值不显示_C#_Xml_Wpf_Wpf Controls - Fatal编程技术网

C# WPF组合框的选定值不显示

C# WPF组合框的选定值不显示,c#,xml,wpf,wpf-controls,C#,Xml,Wpf,Wpf Controls,我有一个xml文件,如下所示:- <Root> <Level> <id>1</id> <display>Level1</display> </Level> <Level> <id>2</id> <display>Level2</display> </Level>

我有一个xml文件,如下所示:-

<Root>
   <Level>
       <id>1</id>
       <display>Level1</display>
   </Level>
   <Level>
       <id>2</id>
       <display>Level2</display>
   </Level>
</Root>
然后按如下方式添加所选值:

cmbLevel.SelectedValue = level;
我是否需要添加其他内容,以便在组合框中显示所选值?我需要重新绑定组合框吗


感谢您的帮助和时间

对于使用组合框选择选项,您似乎有些困惑。我建议您阅读MSDN上的帮助页面。在
组合框
中进行选择的方法有很多,链接文章中对所有这些都有明确的描述

从MSDN:

DisplayMemberPath:获取或设置源对象上的值的路径,以用作对象的可视表示形式

SelectedValue:获取或设置SelectedItem的值,该值是使用SelectedValuePath获得的

SelectedValuePath:获取或设置用于从SelectedItem获取SelectedValue的路径

SelectedItem:获取或设置当前选择中的第一项,如果选择为空,则返回null


另外,为什么要在code和XAML中设置相同的属性?

您似乎对使用
组合框
选择选项有些困惑。我建议您阅读MSDN上的帮助页面。在
组合框
中进行选择的方法有很多,链接文章中对所有这些都有明确的描述

从MSDN:

DisplayMemberPath:获取或设置源对象上的值的路径,以用作对象的可视表示形式

SelectedValue:获取或设置SelectedItem的值,该值是使用SelectedValuePath获得的

SelectedValuePath:获取或设置用于从SelectedItem获取SelectedValue的路径

SelectedItem:获取或设置当前选择中的第一项,如果选择为空,则返回null


另外,为什么要在代码和XAML中设置相同的属性?

Sheridan,我对WPF很陌生,这就是为什么我要做这个示例应用程序。我在代码和XAML中绑定了SelectedValue,因为当我只在XAML中绑定它时,它仍然没有正确地获取SelectedValue,所以我需要在代码中设置ID,因为加载对象后它没有在XAML中设置。不是这样吗?我来自ASP.NET背景,也许这就是我的想法背后的原因。Sheridan,我对WPF非常陌生,这就是我为什么要做这个示例应用程序的原因。我在代码和XAML中绑定了SelectedValue,因为当我只在XAML中绑定它时,它仍然没有正确地获取SelectedValue,所以我需要在代码中设置ID,因为加载对象后它没有在XAML中设置。不是这样吗?我来自ASP.NET背景,也许这就是我思考的原因。你想把什么设置为选定值?你想把什么设置为选定值?
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;