这更多是一种最佳实践/“我是否做对了?”问题,我认为有些正常。
我们正在使用MVVM方法开发(C#,. NET Core)WPF应用程序,也使用Prism,这意味着下面每个视图视图模型中的代码。我有一个带列表(gridview)和过滤器控件(用于列表)的父控件。
该功能非常标准:
过滤器有一个文本框和一个搜索按钮。单击过滤器的搜索按钮后,搜索按钮将被禁用,并且事件将触发列表控件进行搜索并显示结果。搜索完成后,父级会触发搜索完成的事件(以便过滤器可以启用搜索按钮)。
两个事件都声明为
public event Action<bool> SearchFinishedEvent = delegate { };
resp
public event Action<AccountFilter> SearchButtonClickedEvent = delegate { };
所以现在我的问题是:我已经将这两个控件都连接到了父控件中,如下所示:
AccountsFilterViewModel.SearchButtonClickedEvent += AccountsFilter_OnSearchButtonClicked;
SearchFinishedEvent += AccountsFilterViewModel.OnExternalSearchFinished;
这有效,但是我宁愿让过滤器挂接/将其自己的私有处理程序分配给父母事件。我可以
1)如上2)派父母给孩子,让孩子自己分配3)使用Prisms事件聚合器,但是从我的理解来看,当两个组件如此明显地属于同一类时,它有点过分杀伤]
这更是一种最佳实践/“我是否做对了?”问题,我认为某些工作正常。我们正在使用MVVM方法(也使用Prism)开发(C#、. NET Core)WPF应用程序,其中...
我不太明白为什么您要先使用视图模型或wpf。这种样式非常适合代码隐藏和获胜形式。