我正在尝试将组合框绑定到 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}"