C#/ WPF / Prism中的“外部”事件绑定(在父视图和子视图之间)

问题描述 投票:0回答:1

这更多是一种最佳实践/“我是否做对了?”问题,我认为有些正常。

我们正在使用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应用程序,其中...

c# wpf events prism
1个回答
-1
投票

我不太明白为什么您要先使用视图模型或wpf。这种样式非常适合代码隐藏和获胜形式。

© www.soinside.com 2019 - 2024. All rights reserved.