该应用程序基于使用Prism和MEF的MVVM。 我已将Windows树视图控件转换为Telerik RadTreeview控件。一切正常,但定义的ItemContainerStyle以某种方式禁用了要显示的树。如果我从Radtreeview中删除ItemContainerStyle,树变得可见,但没有样式。 通过使用相同的ItemcontainerStyle的windows treeview工作正常。 以下是代码。
<uxc:UxtWindow.Resources>
<HierarchicalDataTemplate x:Key="SiteWizardTemplate" ItemsSource="{Binding Steps}" >
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding DisplayAs}" />
</StackPanel>
</HierarchicalDataTemplate>
</uxc:UxtWindow.Resources>
<telerik:RadTreeView IsVirtualizing="True" ItemsSource="{Binding Wizard.WizardSections}"
ItemTemplate="{StaticResource SiteWizardTemplate}"
PreviewMouseDown="TreeView_PreviewMouseDown" >
<telerik:RadTreeView.ItemContainerStyle>
<Style TargetType="{x:Type telerik:RadTreeViewItem}">
<Setter Property="FontSize" Value="18" />
<Setter Property="FontStyle" Value="Italic" />
<Setter Property="Margin" Value="0,5,0,10" />
<Setter Property="Foreground" Value="Black" />
</telerik:RadTreeView.ItemContainerStyle>
</telerik:RadTreeView>
答案 0 :(得分:1)
我认为您必须使用BasedOn
属性扩展现有样式,而不是仅覆盖它:
<Style TargetType="{x:Type telerik:RadTreeViewItem}" BasedOn="{StaticResource {x:Type telerik:RadTreeViewItem}}">
哦,删除你的ItemTemplate
:你不能同时设置ItemTemplate
和ItemContainerStyle
。