Im試圖爲我的功能區提供數據模板。如何使用ItemsSource和DataTemplates呈現數據對象中的功能區
功能區聲明如下,並附帶一個ItemTemplate。
<r:Ribbon Name="RibbonMain"
ItemTemplate="{StaticResource HomeRibbonTabTemplate}">
</r:Ribbon>
的DataTemplate中是這樣的:
<Window.Resources>
<DataTemplate DataType="{x:Type local:RibbonContainer}"
x:Key="HomeRibbonTabTemplate">
<r:RibbonTab Header="{Binding Path=HeaderName}">
<r:RibbonGroup Header="{Binding Path=GroupName}">
</r:RibbonGroup>
</r:RibbonTab>
</DataTemplate>
</Window.Resources>
我然後裝上的ItemsSource:
public MainWindow()
{
InitializeComponent();
var RibbonTabData = new ObservableCollection<RibbonContainer>();
RibbonTabData.Add(new RibbonContainer("HeaderName", "GroupName"));
RibbonMain.ItemsSource = RibbonTabData;
}
最後類:(這只是包含兩個字符串字段)
class RibbonContainer
{
public string HeaderName
{
get;
set;
}
public string GroupName
{
get;
set;
}
public RibbonContainer(string _headername, string _groupname)
{
HeaderName = _headername;
GroupName = _groupname;
}
}
我得到th在標題標題中顯示完全限定的類名稱並且無法顯示ribbongroup。 (這是數據模板應該解決的問題?) 怎麼辦?
問候
嗯,據我瞭解你的問題,你設置一個容器列表是你的Ribbon控件的ItemsSource。這將自動導致Ribbon爲您創建RibbonTabs。此外,您希望以某種格式對每個RibbonTab進行模板化。但問題是您定義了另一個RibbonTab,它應放置在第一個自動創建的RibbonTab中。因此,你的應用開始動作怪異。 –