gpt4 book ai didi

c# - 从 ViewModel 关闭和清理 View

转载 作者:行者123 更新时间:2023-11-30 16:23:55 25 4
gpt4 key购买 nike

我的应用程序使用著名的 IDialogService 的变体创建了许多 subview 。我现在需要在特定事件或一组事件发生时以编程方式关闭这些 View 。

首先,我应该如何最好地公开 Views 的 Close 方法,同时牢记这一点

  1. View 的 DataContext (ViewModel) 必须被释放,并且
  2. 必须为每个正在关闭的 View 调用 View.Dispatcher.InvokeShutdown。

到目前为止,我混合了附加行为来连接到 Closing 事件以处理清理和 ViewModel 上的操作,例如

vm.OnCloseAction = ()=> view.Close();

处理从 ViewModel 实际关闭 View 。

不过,这对我来说并不是特别优雅。有没有人有任何其他想法或替代方法?

最佳答案

一个想法是使用您正在使用的任何消息传递框架(例如 MVVM Light 中的 Messenger,这是我使用的),设置一个结束消息(或类似的东西)并拥有任何需要做某事的东西on close 注册该关闭消息。

关于c# - 从 ViewModel 关闭和清理 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11148532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com