我正在使用Caliburn.Micro.Telerik约定project。
我有动态加载telerik Tabs视图模型的视图:
<telerik:RadTabControl x:Name="Items" Grid.Row="1" Margin="10,0,0,0" />
我已将Tabs视图模型中的IsEnabled
属性设置为false,但该Tab始终处于启用状态。
支持吗?如果没有,我该如何添加呢?
答案 0 :(得分:1)
我很确定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 element convention)
编辑:
实际上查看src,似乎没有为RadTabItem
所以看起来你应该走ConventionManager
路线
答案 1 :(得分:0)
我尝试使用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>