2013-08-30 3 views
0

У меня есть StackPanel, который мне нужно заполнить ExpanderViews на основе моих данных. Я создаю ExpanderViews в код- и назначив ему DataTemplate, представленный в XAML.ExpanderView, назначающий DataTemplate

Проблема в том, что я могу создать программу ExpanderView программно, но подход DataTemplate не работает. Все, что я вижу, это «Expander Header», который не показывает элементы после нажатия.

Однако я могу добавить элементы вручную в ExpanderView, и он показывает элементы.

Пожалуйста, помогите!

C# Код:

ExpanderView expandOne = new ExpanderView() 
    { 
     Width = 400, 
     Margin = new Thickness(2), 
     HorizontalAlignment = HorizontalAlignment.Center, 
     VerticalAlignment = VerticalAlignment.Center, 
     Expander = new Border() 
        { 
         Width = 400, 
         Background = new SolidColorBrush(Colors.Brown), 
         Child = new TextBlock() 
         { 
          Text = "Expander Header", 
          FontSize = 34, 
          Foreground = new SolidColorBrush(Colors.Black), 
          Margin = new Thickness(40, 5, 5, 5), 
         }, 
        }, 
    }; 

// Assign DataTemplate 
DataTemplate temp = (DataTemplate)FindName("ItemTemplateName"); 
expandOne.ItemTemplate = temp; 

// add ExpanderView to StackPanel 
this.MyStackPanel.Children.Add(expandOne); 

XAML Код:

<phone:PhoneApplicationPage.Resources> 
    <DataTemplate x:Key="ItemTemplateKey" x:Name="ItemTemplateName"> 
     <ListBox Grid.Row="0" x:Name="ItemListBox"> 
      <ListBox.Items> 
       <TextBlock Text="Filter Content 1" Foreground="Black"/> 
       <TextBlock Text="Filter Content 2" Foreground="Black"/> 
       <TextBlock Text="Filter Content 3" Foreground="Black"/> 
      </ListBox.Items> 
     </ListBox> 
    </DataTemplate> 
</phone:PhoneApplicationPage.Resources> 

ответ