我将尝试将一个ComboBox绑定到一个ObservableCollection,但是当表单被显示时,ComboBox是空的。使用字符串类型的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的name属性:
![enter image description here](https://istack.dev59.com/oJVCk.webp)
DisplayMemberPath="{Binding XPath=name}" ItemsSource="{Binding ItemParameters}"
DisplayMemberPath="{Binding XPath=InnerXml/name}" ItemsSource="{Binding ItemParameters}"
解决方案:
这个方法很有效,希望能对其他人也有用:
<ComboBox DisplayMemberPath="@name" ItemsSource="{Binding ItemParameters}"