C#-将ObservableCollection绑定到组合框WPF
作者:互联网
我正在尝试将组合框绑定到ObservableCollection.当显示表单时,组合框为空.与类型为string的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属性:
更新:
我尝试以两种不同的方式使用DisplayMemberPath,但是组合框仍然不包含任何数据:
DisplayMemberPath="{Binding XPath=name}" ItemsSource="{Binding ItemParameters}"
DisplayMemberPath="{Binding XPath=InnerXml/name}" ItemsSource="{Binding ItemParameters}"
解:
这是成功的窍门,希望它也能对其他人有所帮助:
<ComboBox DisplayMemberPath="@name" ItemsSource="{Binding ItemParameters}"
解决方法:
首先,您要同时设置具有冲突属性的Path和XPath,其次,您绑定ItemsSource,这与要在项目中显示的内容无关.无论使用DisplayMemberPath
还是ItemTemplate
,ItemsSource都应绑定到ItemParameters.
标签:wpf,c,net-4-0 来源: https://codeday.me/bug/20191201/2078564.html