我在酒吧喝了几杯啤酒,这个女孩认为让 mvvm 与现实世界的应用程序一起工作很痛苦,她说为了解决 mvvm 中的问题,你添加更多代码,然后你会遇到另一个问题,你添加更多的代码,它永远不会结束,我同意,当我读到 mvvm 时,它听起来不错,而且我不想使用 prism 或 MVVM light,我只需要一种在我的视图之间切换的方法。我的应用程序看起来像这样,所以请在我酒精中毒之前启发我
如果您想要松散耦合的通信,您需要一个 EventAggregator:
//Simplest EventAggregator
public static class DumbAggregator
{
public static void BroadCast(string message)
{
if (OnMessageTransmitted != null)
OnMessageTransmitted(message);
}
public static Action<string> OnMessageTransmitted;
}
Usage:
public class MySender
{
public void SendMessage()
{
DumbAggregator.BroadCast("Hello There!");
}
}
public class MySubscriber
{
public MySubscriber()
{
DumbAggregator.OnMessageTransmitted += OnMessageReceived;
}
private void OnMessageReceived(string message)
{
MessageBox.Show("I Received a Message! - " + message);
}
}
如果您不喜欢 Child ViewModel,您可以将所有内容放入一个 ViewModel 中,并有一些DataTriggers
或动态更改视图的方法,但是在我看来,父子 ViewModel 方法要干净得多。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)