【问题标题】:Add an image/icon beside treenavigator items在 treenavigator 项目旁边添加图像/图标
【发布时间】:2016-06-06 15:43:00
【问题描述】:

我有一个同步融合 treenavigator 下拉菜单。我们的客户希望在树形导航器的前 2 个向下钻取菜单中为每个项目添加一个图标。鉴于项目列表来自反序列化的 json 对象,我如何映射和注入图像而不将其添加到 json 文件中?我的同事建议在后面的代码中创建一个项目模板,但我不知道该怎么做。

附:请不要将其搁置。如果你不能完全理解你需要问什么,就很难提出一个问题。我会尽量回答任何澄清。

谢谢!

【问题讨论】:

    标签: c# uwp syncfusion uwp-xaml


    【解决方案1】:

    请仅在 ViewModel 中为您要显示图像的项目设置图像路径。你可以试试下面的代码:

    xmlns:navigation="using:Syncfusion.UI.Xaml.Controls.Navigation"
    xmlns:primitives="using:Syncfusion.UI.Xaml.Primitives"
    
      <navigation:SfTreeNavigator ItemsSource={Binding NavigatorItems}>
           <navigation:SfTreeNavigator.ItemTemplate>
               <primitives:HierarchicalDataTemplate ItemsSource="{Binding Models}"  x:Key="Template">
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <Image Source="{Binding ImageSource}" Width="18" Height="18"/>
                            <TextBlock Text="{Binding Header}" VerticalAlignment="Center" Margin="18 0 0 0"/>                   
                        </StackPanel>
                    </DataTemplate>
                    <primitives:HierarchicalDataTemplate.ItemTemplate>
                        <primitives:HierarchicalDataTemplate ItemsSource="{Binding Models}">
                            <DataTemplate>
                                <StackPanel Orientation="Vertical">
                                    <Image Source="{Binding ImageSource}" Width="18" Height="18"/>
                                    <TextBlock Text="{Binding Header}" VerticalAlignment="Center" Margin="18 0 0 0"/>
                                </StackPanel>
                            </DataTemplate>
                            <primitives:HierarchicalDataTemplate.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Vertical">
                                        <Image Source="{Binding ImageSource}" Width="18" Height="18"/>
                                        <TextBlock Text="{Binding Header}" VerticalAlignment="Center" Margin="18 0 0 0"/>
                                    </StackPanel>
                                </DataTemplate>
                            </primitives:HierarchicalDataTemplate.ItemTemplate>
                        </primitives:HierarchicalDataTemplate>
                    </primitives:HierarchicalDataTemplate.ItemTemplate>
                </primitives:HierarchicalDataTemplate>
           </navigation:SfTreeNavigator.ItemTemplate>
    

    注意:需要 Syncfusion.SfTreeNavigator.UWP 和 Syncfusion.SfSharedd.UWP 程序集。

    问候,

    杰西

    【讨论】:

    • 正是我需要的。 Thaaanks 杰西 :)