2010-11-09 78 views
2

我一直在搜索整個網絡,試圖找到一個數據綁定手風琴控件的例子。Databind我的手風琴控制在Silverlight 4中

我已經寫了一個簡單的測試應用程序來嘗試和數據綁定,我可以得到頭綁定,但似乎無法弄清楚如何獲取內容綁定。有人可以幫我嗎?

這是我的XAML:

<tk:Accordion HorizontalAlignment="Left" Margin="12,12,0,0" Name="accordion1" Width="181" Height="325" Background="White" VerticalAlignment="Top"> 
    <tk:Accordion.ItemTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding MenuHeaderName}" /> 
      </StackPanel> 
     </DataTemplate> 
    </tk:Accordion.ItemTemplate> 
    <tk:Accordion.ContentTemplate> 
     <DataTemplate> 
      <StackPanel> 
       <TextBlock Text="{Binding Path=MenuItems.MenuItemName}" /> 
      </StackPanel> 
     </DataTemplate> 
    </tk:Accordion.ContentTemplate>   
</tk:Accordion> 

這裏是我的代碼背後:

public partial class MainPage : UserControl 
{ 
    public class MenuItem 
    { 
     public MenuItem(string name) { MenuItemName = name; } 
     public string MenuItemName { get; set; } 
    } 

    public class MenuHeader 
    { 
     public MenuHeader(string name) 
     { 
      MenuItems = new List<MenuItem>(); 
      MenuHeaderName = name; 
     } 
     public string MenuHeaderName { get; set; } 
     public List<MenuItem> MenuItems { get; set; } 
    } 

    public MainPage() 
    { 
     InitializeComponent(); 

     List<MenuHeader> menuHeaders = new List<MenuHeader>(); 

     MenuHeader robots = new MenuHeader("Robots"); 
     robots.MenuItems.Add(new MenuItem("Robots - Item 1")); 
     robots.MenuItems.Add(new MenuItem("Robots - Item 2")); 
     robots.MenuItems.Add(new MenuItem("Robots - Item 3")); 
     menuHeaders.Add(robots); 

     MenuHeader pirates = new MenuHeader("Pirates"); 
     pirates.MenuItems.Add(new MenuItem("Pirates - Item 1")); 
     pirates.MenuItems.Add(new MenuItem("Pirates - Item 2")); 
     pirates.MenuItems.Add(new MenuItem("Pirates - Item 3")); 
     menuHeaders.Add(pirates); 

     accordion1.ItemsSource = menuHeaders; 
    } 
} 

回答

2

想通了。

這裏是工作的XAML ...

<tk:Accordion HorizontalAlignment="Left" Margin="12,12,0,0" Name="accordion1" Width="181" Height="325" Background="White" VerticalAlignment="Top"> 
     <tk:Accordion.ItemTemplate> 
      <DataTemplate> 
       <StackPanel> 
        <TextBlock Text="{Binding MenuHeaderName}" /> 
       </StackPanel> 
      </DataTemplate> 
     </tk:Accordion.ItemTemplate> 
     <tk:Accordion.ContentTemplate> 
      <DataTemplate> 
       <ListBox ItemsSource="{Binding MenuItems}" BorderThickness="0"> 
        <ListBox.ItemTemplate> 
         <DataTemplate> 
          <TextBlock Text="{Binding MenuItemName}" /> 
         </DataTemplate> 
        </ListBox.ItemTemplate> 
       </ListBox> 
      </DataTemplate> 
     </tk:Accordion.ContentTemplate>   
    </tk:Accordion>