Design patterns 如何在视图模型中动态构建UI
我已经完全采用了我们silverlight应用程序的MVVM模式。然而,我们的一些UI是数据驱动的。主要有两项Design patterns 如何在视图模型中动态构建UI,design-patterns,mvvm,silverlight-4.0,mvvm-light,Design Patterns,Mvvm,Silverlight 4.0,Mvvm Light,我已经完全采用了我们silverlight应用程序的MVVM模式。然而,我们的一些UI是数据驱动的。主要有两项 菜单。我们正在使用基础设施XamMenu 我们有一个“仪表板”,允许用户添加“管理单元”。这有点像iGoogle这样的门户网站 在上述两种情况下,都需要在运行时构建UI。目前我正在运行代码隐藏中的代码,因为我看不到访问ViewModel中UI树的简单方法 为了在视图中运行代码,我在ViewModel中创建了一个事件,一旦加载数据就会触发该事件。因此,我必须在视图代码中隐藏对viewmo
为了回答问题1,为什么不使用MVVM light“Messenger”类呢 在您看来,您可以通过以下方式注册以收听消息:
Messenger.Default.Register<bool>(this, "MessageId", DoSomething);
希望有帮助:)您需要将此添加到您的使用中:
using GalaSoft.MvvmLight.Messaging;
好啊我想我不知道该怎么办。我基本上想发送一个“消息”,说明“X”发生了。没有传递任何值。。。我只是想触发它,有点像一个事件,但不需要像事件一样引用发送者。这可能吗?使用示例中的代码绝对可能。您必须注册事件以获取一个参数,但不要使用bool,只需让它接受一个对象并发送null即可。然后你可以通过DoSomething方法在视图端做任何你想做的事情prism文档甚至说修改可视化树或引用控件的代码需要在代码后面。所以,我将接受这一点作为问题1的答案,并接受“你不能”是问题2的答案。谢谢
using GalaSoft.MvvmLight.Messaging;