我有一个主窗口,上面有四个用户控件。这五个实体需要相互通信。是否存在在UserControls之间传递值和对象的既定方法?
编辑:我对MVVM很熟悉,但我要求的解决方案不在这个范例之内。
答案 0 :(得分:2)
有很多方法,这取决于你的实际情况。最直接的方法是在UserControls中公开公共属性和/或事件。如果您想要获取特定于视图的数据,这是首选方法。如果您的通信与模型有关,则应通过ViewModel(并使用MVVM)进行路由。
一般来说,我认为UserControls直接访问 是对desgin气味的强烈暗示。对于具体情况(Mediator,Eventaggregator,Controller或只是父控件),很可能会有更好的方法。
答案 1 :(得分:0)
您可以使用制作代表来传达五个实体。
答案 2 :(得分:0)
我认为您需要根据项目需求决定域模型,然后创建表示模型中实体的类。然后根据需要传递此实体的对象。
答案 3 :(得分:0)
有很多方法,一种是使用事件。没有“直接”方法,您需要通过表单或模型类路由您的值。
有一种已建立的模式叫MVVM(只是google for it),它有统一的方式在不同的控制,数据库,Web服务,计算等之间进行通信.MVVM不是用于在不同控件之间进行通信的模式,它是一个很大的模式更大的模式,但它也解决了这个问题。