C# 列表框中的数据绑定工具提示
我正在将xml结构绑定到列表框。我很困惑怎么做。如何将数据模板放入数据模板中,或者我需要使用hirarchialdatatemplate…例如,从xml,我想在列表框中显示汽车的品牌名称,并将相应的SUV显示为工具提示或上下文菜单。如何操作..请帮助..任何输入都将非常有用..我的xml文件结构如下所示C# 列表框中的数据绑定工具提示,c#,.net,wpf,xaml,C#,.net,Wpf,Xaml,我正在将xml结构绑定到列表框。我很困惑怎么做。如何将数据模板放入数据模板中,或者我需要使用hirarchialdatatemplate…例如,从xml,我想在列表框中显示汽车的品牌名称,并将相应的SUV显示为工具提示或上下文菜单。如何操作..请帮助..任何输入都将非常有用..我的xml文件结构如下所示 <XmlDataProvider x:Key="src"> <x:XData> <Automobiles> &
<XmlDataProvider x:Key="src">
<x:XData>
<Automobiles>
<Id>24</Id>
<Category>Cars</Category>
<MakeName>Audi</MakeName>
<Suvs>
<SuvId>Item1</SuvId>
<SuvId>Item1</SuvId>
<SuvId>Item1</SuvId>
<SuvId>Item1</SuvId>
</Suvs>
<IsPanel>1</IsPanel>
<IsFav>1</IsFav>
</Automobiles>
</x:XData>
</XmlDataProvider>
24
汽车
奥迪
项目1
项目1
项目1
项目1
1.
1.
我修改了您的XML格式以支持多个汽车组:
<XmlDataProvider x:Key="src">
<x:XData>
<Automobiles xmlns="">
<Automobile>
<Id>24</Id>
<Category>Cars</Category>
<MakeName>Audi</MakeName>
<Suvs>
<SuvId>audiItem1</SuvId>
<SuvId>audiItem2</SuvId>
<SuvId>audiItem3</SuvId>
<SuvId>audiItem4</SuvId>
</Suvs>
<IsPanel>1</IsPanel>
<IsFav>1</IsFav>
</Automobile>
<Automobile>
<Id>24</Id>
<Category>Cars</Category>
<MakeName>BMW</MakeName>
<Suvs>
<SuvId>bmwItem1</SuvId>
<SuvId>bmwItem2</SuvId>
<SuvId>bmwItem3</SuvId>
<SuvId>bmwItem4</SuvId>
</Suvs>
<IsPanel>1</IsPanel>
<IsFav>1</IsFav>
</Automobile>
</Automobiles>
</x:XData>
</XmlDataProvider>
24
汽车
奥迪
听力项目1
听力项目2
听力项目3
听力项目4
1.
1.
24
汽车
宝马
bmwItem1
bmwItem2
bmwItem3
bmwItem4
1.
1.
我连接了上下文菜单和工具提示。
下面是我如何连接绑定的:
<ItemsControl ItemsSource="{Binding Source={StaticResource src}, XPath=/Automobiles/Automobile}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel Orientation="Horizontal">
<StackPanel.ContextMenu>
<ContextMenu ItemsSource="{Binding XPath=Suvs}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="SUV ID: " />
<TextBlock Text="{Binding XPath=SuvId}" />
</StackPanel>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
</StackPanel.ContextMenu>
<StackPanel.ToolTip>
<ListBox ItemsSource="{Binding XPath=Suvs/SuvId}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="SUV ID: " />
<TextBlock Text="{Binding InnerText, StringFormat={}}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel.ToolTip>
<TextBlock Text="Make: " />
<TextBlock Text="{Binding XPath=MakeName}" />
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>