2011-06-02 48 views
0

我想使用Telerik的RadPanelBar來顯示對象列表。我希望該名稱在摺疊時顯示,並在展開時顯示該對象。由於某種原因,這似乎不起作用。我是否正確使用此控件?爲什麼我不能將Telerik的RadPanelBar與標準的對象集合一起使用?

<telerik:RadPanelBar ItemsSource="{Binding Contacts}" /> 

控件呈現正確,具有正確數量的項目,但是我無法展開任何項目。我想這呈現爲這樣的:

<Item Header="{Binding Name}" IsExpanded="False" /> 
<Item Header="{Binding Name}" IsExpanded="True"> 
    <ContentControl Content="{Binding }" /> 
</Item> 
<Item Header="{Binding Name}" IsExpanded="False" /> 
<Item Header="{Binding Name}" IsExpanded="False" /> 

回答

1

無論出於何種原因,RadPanelBar需要一個集合中綁定到一個集合。它不適用於單個對象。我用的解決方法是這樣的:

<telerik:RadPanelBar ItemsSource="{Binding Contacts}"> 
    <telerik:RadPanelBar.ItemTemplate> 
     <HierarchicalDataTemplate ItemsSource="{Binding ObnoxiousWorkaroundForTelerik}"> 
      <TextBlock Text="{Binding Name}" /> 
      <HierarchicalDataTemplate.ItemTemplate> 
       <DataTemplate> 
        <ContentControl Content="{Binding }" /> 
       </DataTemplate> 
      </HierarchicalDataTemplate.ItemTemplate> 
     </HierarchicalDataTemplate> 
    </telerik:RadPanelBar.ItemTemplate> 
</telerik:RadPanelBar> 

在我ContactClass我剛加入這個集合....

private ObservableCollection<AgencyContact> _forTelerik; 
public ObservableCollection<AgencyContact> ObnoxiousWorkaroundForTelerik 
{ 
    get 
    { 
     if (_forTelerik == null) 
     { 
      _forTelerik = new ObservableCollection<AgencyContact>(); 
      _forTelerik.Add(this); 
     } 
     return _forTelerik; 
    } 
} 

如果有人知道,不需要我創造一個又一個的解決方法請在我的課堂上收集我的課程,讓我知道!

0

我沒有與此控件特別的經驗,但我知道,在其他WPF控件,如果你想顯示的東西,展開和摺疊您需要定義一個HierarchicalDataTemplate。見:http://msdn.microsoft.com/en-us/library/system.windows.hierarchicaldatatemplate.aspx或更多的一步一步的辦法,請看這裏:http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

找上了Telerik的論壇,它看起來像這篇文章有這樣的例子: http://www.telerik.com/community/forums/wpf/panelbar/radpanelbar-datatemplate.aspx

+0

使用HierachialDataTemplate會產生相同的行爲 – Rachel 2011-06-02 20:09:40

相關問題