我正在使用 Caliburn.Micro.Telerik 约定项目。
我有动态加载 Telerik Tabs 视图模型的视图:
<telerik:RadTabControl x:Name="Items" Grid.Row="1" Margin="10,0,0,0" />
我已将IsEnabled
其中一个选项卡视图模型的属性设置为 false,但该选项卡始终处于启用状态。
这支持吗?如果没有,我该如何添加它?
我很确定 CM 不允许元素约定使用多个属性,我不确定默认属性RadTabItem
是什么。您始终可以使用选项卡控件上的样式使用显式绑定
<telerik:RadTabControl x:Name="Items" Grid.Row="1" Margin="10,0,0,0">
<telerik:RadTabControl.Resources>
<Style TargetType="telerik:RadTabItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}" />
</Style>
</telerik:RadTabControl.Resources>
</telerik:RadTabControl>
或者尝试ConventionManager
为它们使用和设置默认约定(尽管这可能已经设置为 Telerik CM 框架中的某些内容)
ConventionManager.AddElementConvention<RadTabItem>(RadTabItem.IsEnabledProperty, "IsEnabled", "?");
(您可能已经注意到“?”,我不确定哪些事件RadTabItem
可用,哪些应该是触发操作的默认事件,因此您必须自己填写此事件,请参阅此处了解更多信息:Caliburn 元素约定)
编辑:
实际上查看 src,似乎没有提供默认约定RadTabItem
所以看起来你应该沿着这ConventionManager
条路走
我曾尝试使用 ConventionManager 但没有成功。
我最终按照 Charleh 和 Valeriu 在 github 问题页面 ( https://github.com/vcaraulean/Caliburn.Micro.Telerik/issues/12#issuecomment-11840602 ) 上的建议使用了这个 XAML:
<telerik:RadTabControl x:Name="Items">
<telerik:RadTabControl.ItemContainerStyle>
<Style TargetType="telerik:RadTabItem">
<Setter Property="IsEnabled" Value="{Binding IsEnabled}" />
</Style>
</telerik:RadTabControl.ItemContainerStyle>
</telerik:RadTabControl>