【问题标题】:databinding tooltip in listbox列表框中的数据绑定工具提示
【发布时间】:2009-03-17 17:20:33
【问题描述】:

我正在将 xml 结构绑定到列表框。我对此感到很困惑。如何将数据模板放入数据模板中,或者我需要使用 hirarchialdatatemplate ...例如从 xml 中,我想在列表框中显示汽车的品牌名称,我想要将相应的 Suv 显示为工具提示或上下文菜单。如何做到这一点..请帮助..任何输入都会非常有帮助..我的 xml 文件结构如下所示

<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>

【问题讨论】:

    标签: c# .net wpf xaml


    【解决方案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>
    

    我连接了上下文菜单和工具提示。 以下是我连接绑定的方式:

    <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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      相关资源
      最近更新 更多