【问题标题】:How do I reset a window on button click如何在按钮单击时重置窗口
【发布时间】:2015-12-04 13:00:34
【问题描述】:

我有一个 WPF 应用程序,我想在按钮单击时重置一个窗口。但只是一个特定的窗口,而不是我的所有应用程序。

我有 3 个窗口:主窗口、第二窗口和第三窗口。

主打开第二个,第二个打开第三个。

当我使用执行this.Close() 的按钮关闭第三个窗口时,我也想重新启动第二个窗口。

有没有办法做到这一点?

【问题讨论】:

  • 请向我们提供您的代码示例。你如何初始化这个窗口?
  • 代码很多。我只是通过在另一个窗口中单击按钮打开它并执行win.Show()
  • 所以,您可以关闭此窗口并打开新窗口。问题是什么?
  • @YuriDorokhov 我已经更新了我的问题。
  • 当您创建一个窗口时,只需连接到关闭事件,然后在该事件中刷新调用窗口。

标签: c# wpf


【解决方案1】:

如果您的项目或代码基于 MVVM,则命令应引用您要在可视树中操作的特定依赖对象作为参数。

【讨论】:

  • 不,它不是基于 MVVM 的。
【解决方案2】:

使用 MVVM Light 等 MVVM 框架并在窗口之间使用消息传递的最佳方式。

例如: 创建特定消息

public class RefreshWindowMessage
{
   public Guid Identity { get; set; }
}

关闭第三个时发送消息

Messenger.Default.Send(new RefreshWindowMessage("<some guid of window>"));

在主窗口中注册消息

Messenger.Default.Register<RefreshWindowMessage>
( 
     this, 
     ( action ) => ReceiveMessage( action ) 
);

并重新启动第二个窗口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多