我正在尝试使用Telerik的RadPanelBar来显示对象列表。我想要在折叠时显示名称,以及展开时显示的对象。出于某种原因,这似乎不起作用。我是否正确使用此控件?
<telerik:RadPanelBar ItemsSource="{Binding Contacts}" />
Control使用正确的项目数正确呈现,但是我无法展开任何项目。我希望这可以呈现为:
<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" />
答案 0 :(得分: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;
}
}
如果有人知道另一种解决方法,不需要我在课堂上创建课程集合,请告诉我!
答案 1 :(得分: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