我正在試圖綁定動態菜單的功能區控件。在運行時構建wpf功能區
<ribbon:Ribbon>
<ribbon:RibbonTab Header="Reports"
ItemsSource="{Binding ReportMenus}"
ItemTemplate="{StaticResource RibbonGroupDataTemplate}">
</ribbon:RibbonTab>
<ribbon:RibbonTab Header="Test">
<ribbon:RibbonGroup Header="TestGROUP"
ItemsSource="{Binding ReportMenus}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
</ribbon:RibbonGroup>
</ribbon:RibbonTab>
</ribbon:Ribbon>
頂部功能區選項卡是我的'真正'ribbontab。底部開始作爲手動建立,我正在驗證我的理論。
這裏有我想要使用的DataTemplates:
<Style TargetType="{x:Type ribbon:RibbonButton}">
<Setter Property="Label"
Value="{Binding ReportDisplayName}" />
</Style>
<DataTemplate x:Key="RibbonButtonDataTemplate">
<ribbon:RibbonButton />
</DataTemplate>
這是我在集團的DataTemplate第一次嘗試:
<HierarchicalDataTemplate x:Key="RibbonGroupDataTemplate" DataType="{x:Type Ribbon:RibbonGroup}"
ItemsSource="{Binding Converter={StaticResource DebugConverter}}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
<TextBlock Text="{Binding Path=ReportDisplayName}" />
</HierarchicalDataTemplate>
然後我嘗試這一個:
<DataTemplate x:Key="RibbonGroupDataTemplate">
<ribbon:RibbonGroup ItemsSource="{Binding Converter={StaticResource DebugConverter}}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}" />
</DataTemplate>
問題是,我不能讓按鈕顯示在組下。如果我的第二個ribbontab中沒有組模板,我可以使用它。 但是,如果我嘗試動態地執行該組,則無法創建按鈕。同樣通過使用裏面的ribbongroup的數據模板,標題被截斷。我已經閱讀過這些內容,這就是嘗試使用HierarchicalDatatemplate的原因。 Regular Datatemplate不允許使用itemsource或itemtemplate。
那麼我如何獲得動態RibbonGroup以顯示動態RibbonButtons?
我已經實施了一些其他更改現在,它至少填寫它,但它不正確。
現在它看起來是這樣的:
我希望它看起來像這樣這部分是硬編碼。
這裏是XAML
<DataTemplate x:Key="RibbonButtonDataTemplate">
<ribbon:RibbonButton />
</DataTemplate>
<HierarchicalDataTemplate x:Key="RibbonGroupDataTemplate"
DataType="{x:Type ribbon:RibbonGroup}"
ItemsSource="{Binding ReportsMenuCollection}"
ItemTemplate="{StaticResource RibbonButtonDataTemplate}">
<TextBlock Text="{Binding Path=ReportDisplayName}" />
</HierarchicalDataTemplate>
我已經離開嘗試正在改變我的RibbonButtonDataTemplate對層次的DataTemplate的唯一的事。
你能告訴我一個例子嗎?我只使用一個自聯表創建結構... id,parentid,reportname;如果parentid = id那麼它的一個組,否則它是一個孩子的任何parentid ... – ecathell 2010-12-14 19:48:10
納米...我去了另一個項目,我正在與文件夾分層數據和樹視圖。我不得不修改我如何使用根對象 – ecathell 2010-12-14 20:24:45
實際上是一個常規的數據樣式和樣式工作得很好......只要確保最大化您的窗口,以便您可以正確地看到它:) – ecathell 2010-12-17 23:09:38