Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf MenuItem.Header和MenuItem.Icon数据模板_Wpf_Xaml_Menu_Menuitem - Fatal编程技术网

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祝你好运