【问题标题】:How To access commands on usercontrol from viewmodel如何从 viewmodel 访问用户控件上的命令
【发布时间】:2010-12-11 02:30:40
【问题描述】:

我有遗留的 windows 窗体用户控件,它公开了几个公共方法。我将此控件包装在 wpf 用户控件上,并在新的 wpf 用户控件上使用中继命令封装方法。

现在我的问题是如何使用 mvvm 模式在我的用户控件上执行来自 viewmodel 的命令,该 viewmodel 与托管新 wpf 用户控件的视图一起使用。

【问题讨论】:

    标签: wpf user-controls command


    【解决方案1】:

    使用 PRISM 事件聚合器?您可以从 ViewModel 触发一个事件,从您的 Usercontrol 订阅它。

    http://www.codeproject.com/Articles/355473/Prism-EventAggregator-Sample https://msdn.microsoft.com/en-us/library/ff921122.aspx

    【讨论】:

      【解决方案2】:

      我很想知道如何让它与绑定一起工作。需要将模式设置为 OneWayToSource 才能从用户控件中获取命令。棘手的部分是命令的初始化必须在用户控件的加载事件中完成。如果您尝试在构造函数内部执行此操作,您最终会得到绑定的默认初始化,该初始化可能为 null。

      【讨论】:

        【解决方案3】:

        在视图模型中你必须添加一个字段说

        Public ICommand CommandOne
        

        现在此命令将根据您的要求/条件创建一个新的 RelayCommand 对象。

        现在,您可以将此“CommandOne”命令与控件表单上的任何对象说按钮绑定。

        因此,无论何时单击按钮,都会创建 RelayCommand 对象并执行作为参数提供给它的操作。

        希望它对你有用。

        【讨论】:

        • 我需要做的是将用户控制命令链接到视图模型命令,以便可以在视图模型中以编程方式调用它
        猜你喜欢
        • 2015-07-21
        • 1970-01-01
        • 1970-01-01
        • 2020-08-08
        • 1970-01-01
        • 2011-06-04
        • 1970-01-01
        • 2016-02-02
        • 2012-02-18
        相关资源
        最近更新 更多