3

我正在尝试将组合框绑定到 ObservableCollection。当显示表单时,组合框为空。与字符串类型的 ObservableCollection 相同的代码可以完美运行。我有一种感觉,我的 XPath 是错误的。欢迎任何建议:

XAML:

<ComboBox ItemsSource="{Binding ItemParameters, XPath=InnerXml/name,Mode=TwoWay}" SelectedIndex="0" Margin="2" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" Grid.Row="1" Grid.Column="1" Height="24"  />

ObservableCollection XmlNode :

public ObservableCollection<XmlNode> _itemParameters = new ObservableCollection<XmlNode>();
public ObservableCollection<XmlNode> ItemParameters
{
    get { return _itemParameters; }
    set { _itemParameters = value; }
}

组合框应显示集合中每个 XmlNode 的名称属性:在此处输入图像描述

更新:

我尝试以两种不同的方式使用 DisplayMemberPath,但组合框仍然不包含数据:

DisplayMemberPath="{Binding XPath=name}" ItemsSource="{Binding ItemParameters}"
DisplayMemberPath="{Binding XPath=InnerXml/name}" ItemsSource="{Binding ItemParameters}"

解决方案:

这成功了,希望它对其他人也有帮助:

<ComboBox DisplayMemberPath="@name" ItemsSource="{Binding ItemParameters}"
4

1 回答 1

3

首先,您正在设置Path并且XPath同时,它们是相互矛盾的属性,其次您绑定,这与您要ItemsSource项目中显示的内容无关。无论是 use还是 an为此, the都应该被绑定到.DisplayMemberPathItemTemplateItemsSourceItemParameters

于 2012-06-27T10:08:27.407 回答