【问题标题】:Silverlight communication/commands/events? between view and viewmodel?Silverlight 通信/命令/事件?视图和视图模型之间?
【发布时间】:2011-03-01 05:56:57
【问题描述】:

我刚刚进入 Silverlight 世界,希望我没有先学习 WPF,这样我就不会因为缺少的小东西而感到沮丧。

在 WPF 中,我使用命令 (RoutedUICommand) 为我的视图/UI 处理“事件”(我的意思是用户所做的事情)并将它们传递给视图模型。

现在在 Silverlight 中,我发现我不能那样做,而且似乎没有达成共识。我不喜欢将代码放在代码隐藏中以获取视图,但我一直发现自己必须这样做,除非我愿意在我使用的每个用户控件附近继承该死的子类。或者为一行代码隐藏语句编写一百万行 xaml。

即便如此,我也不知道是否应该使用事件、命令或似乎最适合我的 LocalMessageSender/LocalMessageReceiver。

底线,对于必须是非常常见的情况,是否有一种普遍接受的方法:告诉视图模型用户做了什么?

哦,如果这很重要,我正在使用 SL 4。

【问题讨论】:

    标签: silverlight events mvvm binding


    【解决方案1】:

    对于必须是非常常见的情况,是否有一种普遍接受的方法:告诉视图模型用户做了什么?

    是的,它被称为绑定。

    当谈到 Silverlight 4 中的按钮点击时,您应该考虑在 ViewModel 上公开类型为 ICommand 的属性,然后您可以在 Button Command 等属性上使用标准 Binding .

    【讨论】:

    • 谢谢,这就是我所害怕的:这就是我采用这种方法时的问题。假设按钮在列表框中,按钮单击工作正常并且命令正确触发,但它拦截了单击,因此该项目不会在列表中被选中。我还有很多控件,它们基本上是像按钮一样的几何图形,我需要对点击做出响应....该死的我的大脑被困在 WPF 世界中。除非我想出一个聪明的子类化/或附加属性方案,否则我猜会有代码重用
    猜你喜欢
    • 2012-06-28
    • 2010-12-18
    • 1970-01-01
    • 2020-01-09
    • 2011-09-06
    • 1970-01-01
    • 2011-09-13
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多