我有一个应用程序,我有一个程序集。
在应用程序中,我有一个窗口,在程序集中我有一个用户控件。
窗口中有一个用户控件的实例。
用户控件和窗口都由单独的视图模型支持。
在用户控件中,有一个按钮。该按钮应根据用户控件的视图模型的状态启用/禁用。单击按钮时,需要根据用户控件的视图模型中的信息进行处理,但需要由窗口的视图模型完成。(需要做的事情的某些方面是并且应该在用户控制范围之外。)
这里有一个转折点——这个用户控件不会专门用于这个窗口,它可能会用在另一个窗口中,或者用在第三个窗口中使用的控件中。不允许用户控件知道包含它的窗口或控件的类型,或者在单击其按钮时正在处理该进程。
那么该怎么办?
在程序集中定义一个命令,并将用户控件的按钮绑定到它,将用户控件的视图模型作为命令参数传递?那么,如何将命令绑定到窗口的视图模型?
或者我应该在用户控件的视图模型中定义命令,然后引发一个事件来告诉父窗口需要采取适当的行动?
我不清楚哪个更干净。