【问题标题】:How can I use Caliburn.Micro conventions to set a button's text and its action?如何使用 Caliburn.Micro 约定来设置按钮的文本及其操作?
【发布时间】:2011-12-14 03:16:39
【问题描述】:

如果我的视图中有一个名为 Save 的按钮,那么我可以将 Save 属性添加到我的 ViewModel,Caliburn.Micro 会自动将它绑定到我的按钮内容。例如:

public string Save { get { return StringResources.Save; } }

或者我可以向我的 ViewModel 添加一个 Save 方法,当单击按钮时,Caliburn.Micro 将执行该方法。例如:

public void Save() {
    Document.Save();
}

但是如果我想两者都做呢? C# 不允许我声明具有相同名称的方法和属性。我可以使用约定both设置按钮的内容和单击时要执行的操作吗?

(我知道我可以手动绑定其中一个,但如果可行的话,我宁愿使用约定。)

这是一种常见的需求,因此您会认为它会内置在 Caliburn.Micro 中,但似乎并非如此。我已经看到了一些扩展约定以支持这一点的代码(如果没有更好的结果,我会将其作为答案发布),但这是一种带有一些奇怪怪癖的解决方法——所以我想听听其他人使这项工作更加干净。

注意:我确实看到了this similar question,但这似乎是关于这是否是一个好主意;我问的是机制。 (在我看到机制之前,我会保留判断这是否是一个好主意。(笑))

【问题讨论】:

  • 你玩过制定约定吗?或者我想知道是否有可能实现类似于 CanXyz 的东西。您的约定绑定到该方法,然后查找 XyzContent。

标签: caliburn.micro convention-over-configur


【解决方案1】:

又快又脏

<Button x:Name="Save"><TextBlock x:Name="SaveText"></TextBlock></Button>

【讨论】:

    猜你喜欢
    • 2016-06-02
    • 1970-01-01
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2013-08-01
    • 2013-11-20
    • 1970-01-01
    相关资源
    最近更新 更多