2013-04-12 3 views
0

У меня есть Menuitem, который должен показывать список количества в виде детей, которые показывают список единиц, определенных для этой величины в качестве детей. Список величин задается в коде для элемента ItemsSourceItem.Создание элементов меню из списка с привязками приводит к пустым элементам

<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 с всплывающим окном, но подпункты (величины) не имеют никакого связанного текста на них. Количество подпунктов правильно, но у них нет детей. Поэтому я предполагаю, что проблема связана с привязками, поскольку фиксированный Text i добавил, чтобы проверить, действительно ли работает DataTemplates («Количество»).

Я думаю, что я не могу использовать ItemTemplate для MenuItem, как это иерархическая с 2-х различных типов ...

EDIT:

Мой DataModel выглядит следующим образом:

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

Вы действительно ожидаете, что мы будем выводить вашу модель данных только из XAML? Пожалуйста, разместите достаточную информацию, чтобы воспроизвести проблему, желательно в автономном мини-приложении. –

ответ

0

О, мужчина, рад, что вы спросили о модели данных ... теперь я понял:

Решение: Используйте свойства в модели данных, а не поля!