Caliburn.Micro:将已按惯例约束的按钮的文本绑定到方法

时间:2011-10-19 13:50:11

标签: .net wpf xaml caliburn.micro

我正在使用Caliburn.Micro优秀的基于约定的绑定将按钮绑定到我的视图模型上的方法。事实是,我希望按钮的Content绑定到视图模型的string属性。

目前我正在允许方法的约定绑定,以及内容的显式绑定。这是一个例子:

E.g:

<Button x:Name="Submit" Content="{Binding SubmitCaption}" />

public class MyViewModel : PropertyChangedBase
{
    public void Submit() {}
    public string SubmitCaption { get; set; } // Technically would raise PropertyChanged event
}

但是我想知道是否有更优雅的方式来做这件事?我正在考虑覆盖按钮的约定,以便它仍然将按钮操作绑定到方法,但将内容绑定到按约定命名的属性。

<Button x:Name="Submit" />

public class MyViewModel : PropertyChangedBase
{
    public void Submit() {}
    public string SubmitContent { get; set; } // Technically would raise PropertyChanged event
}

1 个答案:

答案 0 :(得分:0)

您可以自定义所有按钮的默认行为,但我认为您当前的方法对于开发人员来说更明确,更明显,并且看起来并不特别令人讨厌。我建议坚持你所拥有的。

如果您希望Button内容超过字符串,会发生什么?你使SubmitContent成为对象类型吗?你会在代码中设置它的值吗?这对我来说听起来更糟糕。