Wpf MenuItem.Header和MenuItem.Icon数据模板
我有一个包含以下两个菜单项的菜单:Wpf MenuItem.Header和MenuItem.Icon数据模板,wpf,xaml,menu,menuitem,Wpf,Xaml,Menu,Menuitem,我有一个包含以下两个菜单项的菜单: <MenuItem Header="Item1"> <MenuItem.Icon> <cc:Icon ImageSource="..." Size="22"/> </MenuItem.Icon> </MenuItem> <MenuItem Header="Item2"> <MenuItem.Icon> <cc:Icon ImageSource=
<MenuItem Header="Item1">
<MenuItem.Icon>
<cc:Icon ImageSource="..." Size="22"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem Header="Item2">
<MenuItem.Icon>
<cc:Icon ImageSource="..." Size="22"/>
</MenuItem.Icon>
</MenuItem>
我的MenuItem
类具有字段“String Name”和ImageSource Icon
,我想将其绑定到标题和菜单项的图标部分,这与我在这里的操作完全相同
我认为正确的方法是使用数据模板
,如下所示:
ItemsSource="{Binding Path=SomeMenu}"
<Menu.ItemTemplate>
<DataTemplate>
<!-- TODO: Bind the Header and Icon properties-->
<TextBlock Text="{Binding Path=Name}"/>
<!-- how to bind the icon? -->
</DataTemplate>
<Menu.ItemTemplate>
但是我不明白如何分别定义标题和图标
模板
我如何做到这一点,比
更新:我希望
出现在菜单项模板中有
的地方,而文本框
出现在有的地方,我相信这就是您想要的:
<Menu ItemsSource="{Binding SomeMenu}">
<Menu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Icon">
<Setter.Value>
<cc:Icon Source="{Binding Icon}"></Image>
</Setter.Value>
</Setter>
<Setter Property="Header" Value="{Binding Name}"/>
</Style>
</Menu.ItemContainerStyle>
</Menu>
还是我又一次惨败了?:) 我不明白。在名称空间“cc”中有自己的控件“Icon”。你为什么不能在文本块下面写呢?或者我不。。。也许这还不清楚。我希望在menuItem模板中的任何位置都显示一个,文本框的任何位置都显示一个,我实际上已经使用了我的Owen客户风格,但我相信我可以将这些设置添加到其中。酷,请简要查看Menu.ItemContainerStyle vs Menu.ItemTemplate。当然不是浪费时间:b祝你好运