2

私のxamlは以下のようになります。私は、MenuItems と呼ばれる MenuItems のコレクションで構成される Menus (Menulist と呼ばれる) の監視可能なコレクションを持っています。xaml で区切りスタイルを作成するにはどうすればよいですか

  <Menu Name="menu" DockPanel.Dock="Top" ItemsSource="{Binding MenuList}">
         <Menu.ItemTemplate>
            <HierarchicalDataTemplate ItemsSource="{Binding Path=MenuItems}">
                <HierarchicalDataTemplate.ItemContainerStyle>
                    <Style TargetType="MenuItem">
                        <Setter Property="Command" Value="{Binding MenuClick}" />
                        <Setter Property="IsCheckable" Value="{Binding Checkable}" /> 
                    </Style>
                </HierarchicalDataTemplate.ItemContainerStyle>
                <StackPanel Orientation="Horizontal">
                    <Image Source="{Binding ImageSource}" />
                    <Label Content="{Binding Name}"/>
               </StackPanel>
            </HierarchicalDataTemplate>            
        </Menu.ItemTemplate>
       </Menu>
4

2 に答える 2

1

多分この種のハック(テストされていません):

<Menu Name="menu" DockPanel.Dock="Top" ItemsSource="{Binding MenuList}">
 <Menu.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Path=MenuItems}">
        <HierarchicalDataTemplate.ItemContainerStyle>
            <Style TargetType="MenuItem">
                <Setter Property="Command" Value="{Binding MenuClick}" />
                <Setter Property="IsCheckable" Value="{Binding Checkable}" /> 
            </Style>
        </HierarchicalDataTemplate.ItemContainerStyle>
        <StackPanel Orientation="Horizontal" Visibility="{Binding IsSeparator,Converter=hideIfTrue}">
            <Image Source="{Binding ImageSource}" />
            <Label Content="{Binding Name}"/>
       </StackPanel>
       <Separator Visibility="{Binding IsSeparator,Converter=showIfTrue}" />
    </HierarchicalDataTemplate>            
  </Menu.ItemTemplate>
</Menu>

showIfTrueとhideIfTrueを使用すると、ブール値を取り、ブール値が true の場合にそれぞれVisibility.VisibleまたはVisibility.Collapseを返すコンバーターがいくつかあります。

于 2013-06-13T19:26:15.887 に答える