从带有绑定的列表中创建菜单项会产生空白项



我有一个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>

结果是我的菜单项弹出,但子项(数量)没有任何绑定文本在他们。子项的数量是正确的,但是它们本身没有子项。所以我想有绑定的问题,作为固定的文本我添加检查是否DataTemplates实际工作显示("数量")。

我想我不能为菜单项使用ItemTemplate,因为这是有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;
}

哦,伙计,很高兴你问了数据模型的问题…现在我明白了:

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

最新更新