2010-07-12 100 views
1

我一直在嘗試(和失敗)使用數據綁定動態創建手風琴。WPF Toolkit Accordion - How To Data Bind

我有一個名爲MenuGroups的集合,它包含一個字符串'ModuleName'和一個名爲MenuItems的IList集合。我希望將MenuGroups綁定到標題,並將MenuItems綁定到內容。

到目前爲止,我所管理的最近使用這個XAML:

<WPFToolkit:Accordion ItemsSource="{Binding MenuGroups}" HorizontalAlignment="Stretch" SelectionMode="OneOrMore"> 
    <WPFToolkit:Accordion.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding ModuleName}" /> 
     </DataTemplate> 
    </WPFToolkit:Accordion.ItemTemplate> 

    <WPFToolkit:Accordion.ContentTemplate> 
      <DataTemplate> 
       <TextBox Text="{Binding MenuItems/MenuItemName}"/> 
      </DataTemplate> 
    </WPFToolkit:Accordion.ContentTemplate> 
</WPFToolkit:Accordion> 

這正常生產的頭,但僅在每個組中的第一個菜單項顯示的內容。我已經嘗試了上述各種不同的內涵,但至今我還沒有達到預期的結果。我在內容模板中嘗試了一個ListView而不是TextBlock,認爲我需要多個項目,但是這會產生一個空白內容區域。

任何人都可以幫忙嗎?

回答

0

/屬性路徑中的字符表示綁定到集合中的當前項目。由於您沒有以其他方式設置當前項目,因此它將始終是第一項。請參閱PropertyPath XAML Syntax

如果您希望內容成爲MenuItems的整個列表,您應該使用ItemsControl或其某個子類(如ListBox)。

像這樣的事情會給你一個文本框爲每個菜單項集合中:

<WPFToolkit:Accordion.ContentTemplate> 
    <DataTemplate> 
     <ItemsControl ItemsSource="{Binding MenuItems}"> 
      <ItemsControl.ItemTemplate> 
       <DataTemplate> 
        <TextBox Text="{Binding MenuItemName}"/> 
       </DataTemplate> 
      </ItemsControl.ItemTemplate> 
     </ItemsControl> 
    </DataTemplate> 
</WPFToolkit:Accordion.ContentTemplate> 
+0

嗨 - 感謝您的回覆。正如我在我的原始文章中所說的,我嘗試了一個沒有成功的列表框。我現在正在使用不同的數據結構,無論出於何種原因,這已經解決了我的問題。 – Sean 2010-07-14 06:24:13