好的,我正在尝试了解 WPF 和流行的 MVVM 模式。
现在我有这个问题。我正在使用带有多个选项卡的功能区控件。在我的 ViewModel 中,我有一个属性“ActiveTab(字符串)”,它应该反映当前活动的选项卡。
由于ribboncontrol 没有任何显示此信息的属性,因此我无法绑定到它。
所以我在想:
我可以像这样绑定选定的事件:
<r:RibbonTab Label="tab1" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab2" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab3" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab4" Selected="RibbonTab_Selected"></r:RibbonTab>
<r:RibbonTab Label="tab5" Selected="RibbonTab_Selected"></r:RibbonTab>
然后在代码隐藏中使用 Activetab = sender.Label 在视图模型中设置属性
但是然后我需要在我的视图的代码隐藏中引用我的视图模型。
我试图在不使用任何代码隐藏文件的情况下解决这个问题。(MVVM)。
现在真正的问题 是:是否有可能使用事件触发器或事件设置器。当所选事件被解雇时。setter 自动将 activetab 属性设置为 sender.Label 值?
仅使用 xaml。
- 我为我的英语相当糟糕而且可能是noobish问题的借口。我是 wpf 的新手 =)
更新: 正如我刚刚发现的那样,ribbonTab 上有一个 isSelected 属性。
现在我有一些关于如何将它绑定到我的视图模型中的属性的问题。
我尝试了以下代码:
<Style TargetType="{x:Type r:RibbonTab}">
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="{Binding SelectedTab}" Value="{Binding RelativeSource=Self, Path=Label}" />
</Trigger>
</Style.Triggers>
</Style>
但这不起作用:
Error 1 Cannot find the Style Property 'SelectedTab' on the type 'Microsoft.Windows.Controls.Ribbon.RibbonTab'.
SelectedTab offcourse 在我的视图模型中,而不是在ribbonTab ...
我如何制作设置器,使用选项卡的值在我的视图模型上设置属性?=)
提前致谢!!