我正在使用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
}
答案 0 :(得分:0)
您可以自定义所有按钮的默认行为,但我认为您当前的方法对于开发人员来说更明确,更明显,并且看起来并不特别令人讨厌。我建议坚持你所拥有的。
如果您希望Button
内容超过字符串,会发生什么?你使SubmitContent
成为对象类型吗?你会在代码中设置它的值吗?这对我来说听起来更糟糕。