使用绑定从列表创建菜单项会导致空白项目

时间:2013-04-12 12:11:29

标签: c# wpf datatemplate menuitem hierarchicaldatatemplate

我有一个菜单项,它应该显示作为子项的数量列表,显示为此数量定义的单位列表作为子项。数量列表在代码隐藏中设置为MenuItem的ItemsSource。

<MenuItem Header="common.unitsystem" Name="mnuItemUnits">
    <MenuItem.Resources>
        <DataTemplate DataType="{x:Type guidev:Measurement}">
            <StackPanel>
                <TextBlock Text="Measurement"/>
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </DataTemplate>
        <HierarchicalDataTemplate DataType="{x:Type guidev:Quantity}" ItemsSource="{Binding Measurements}">
            <StackPanel>
                <TextBlock Text="Quantity "/>
                <TextBlock Text="{Binding Name}"/>
            </StackPanel>
        </HierarchicalDataTemplate>
    </MenuItem.Resources>
</MenuItem>

结果是我的MenuItem带有弹出窗口,但子项(数量)上没有任何绑定文本。子项目的数量是正确的,但他们自己没有孩子。所以我认为绑定存在问题,因为我添加的固定文本检查DataTemplates是否实际工作(“数量”)。

我认为我不能将ItemTemplate用于MenuItem,因为它是2种不同类型的层次结构......

修改

我的数据模型如下所示:

public class Quantity
{
    [XmlAttribute]
    public string Name;

    [XmlElement]
    public List<Measurement> Measurement;
}


public class Measurement
{
    [XmlAttribute]
    public string Name;

    [XmlAttribute]
    public string Symbol;

    [XmlAttribute]
    public string System;

    public string ToBaseFormula;

    public string FromBaseFormula;
}

1 个答案:

答案 0 :(得分:0)

哦,伙计,很高兴您询问数据模型......现在我想出来了:

解决方案是:在数据模型中使用属性,而不是字段!