简化非标准按钮的绑定

时间:2012-06-05 18:37:21

标签: wpf binding wpf-controls caliburn.micro

我们正在使用Caliburn Micro并且它非常好但现在我们正在使用新的Ribbon控件(.NET 4.5附带)。这个控件有RibbonButton,虽然这个按钮有一个click事件,而且它是一个按钮,但当它的名字与viewmodel方法一匹配时,Caliburn似乎不会自动触发该动作。

现在,我们可以通过使用cal:Message.Attach="ViewHelp"来解决这个问题,但是由于功能区栏中有相当多的控件,我想知道是否有一种简单的方法可以使RibbonButton之间的自动绑定工作和ViewModel方法。

1 个答案:

答案 0 :(得分:2)

您可以使用ConventionManager。从这开始:

ConventionManager.AddElementConvention<RibbonButton>(
    RibbonButton.ContentProperty, "DataContext", "Click");

将此代码放在Bootstrapper中。像这样:

public class AppBootstrapper : Bootstrapper
{
    protected override void Configure()
    {
        ConventionManager.AddElementConvention<RibbonButton>(
            RibbonButton.ContentProperty, "DataContext", "Click");
    }
}

这绝不是你在引导程序中应该做的。只是为了展示正确的地方。