C# WPF数据绑定到窗口
我想将listbox项的数据绑定链接到一个新窗口 “名称”按钮应打开一个新窗口,其中包含listbox项的数据绑定 绑定是一个.xml文件:C# WPF数据绑定到窗口,c#,wpf,data-binding,listbox,C#,Wpf,Data Binding,Listbox,我想将listbox项的数据绑定链接到一个新窗口 “名称”按钮应打开一个新窗口,其中包含listbox项的数据绑定 绑定是一个.xml文件: 新窗口应该链接到Person的Name元素 虽然会有不止一个人,但窗口应该链接到正确的人 这是XmlDataProvider: <XmlDataProvider x:Name="XmlData" Source="People.xml" XPath="/People/Person" /> 列表框的绑定如下所示: 除非DataContex
新窗口应该链接到Person的Name元素
虽然会有不止一个人,但窗口应该链接到正确的人
这是XmlDataProvider:
<XmlDataProvider x:Name="XmlData" Source="People.xml" XPath="/People/Person" />
列表框的绑定如下所示:
除非
DataContext
设置为XmlData
您的ItemsSource
绑定将无法工作。您没有提到定义XmlDataProvider
的位置,因为如果在Resources
中,则需要指定x:Key
,而不是x:Name
,然后必须将其指定为Binding.Source
。您也没有说明什么是People.xml
,因为它必须作为资源添加到您的解决方案中
<Window ...>
<Window.Resources>
<XmlDataProvider x:Key="XmlData" XPath="/People/Person" Source="People.xml"/>
</Window.Resources>
<ListBox ItemsSource="{Binding Source={StaticResource XmlData}}">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1} {2}">
<Binding XPath="Name/@last_name" />
<Binding XPath="Name/@first_name" />
<Binding XPath="Name/@second_name" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Window>
或者您可以通过在代码中手动设置
XmlDataProvider.Source
来手动加载它。您的问题是什么?我如何才能做到这一点,因为它只打开第一个人请显示一些代码。我已经添加了一些代码