0

这是我的场景:

我的第一个窗口包含一个 ListView,ListView 中的每个项目都包含一个按钮,如果用户单击一个按钮,则会显示一个详细信息窗口。

我不希望应用程序显示太多窗口,只有一个就足够了,如果用户单击一个项目,则窗口显示,当用户单击另一个项目时,窗口的内容会发生变化,它不会创建新窗口以显示。所以我将窗口设置为单例,所有内容都使用数据绑定(MVVM模式),但是如果我关闭窗口,资源被释放,所以它不会再次显示,然后我覆盖关闭方法,让窗口取消,没有关闭,但是这样,即使我关闭了应用程序,窗口仍然没有被释放,在任务管理器中我也可以看到一个进程。

有人有更明智的想法吗?谢谢。

编辑:

 private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
        e.Cancel = true;
        this.Visibility = Visibility.Hidden;
    }
4

1 回答 1

0

Try making a custom user control that can be loaded dynamically in run-time. Example:

//constructor that builds a customer user control using a form as its argument
ItemControl control = new ItemControl(controlForm2);
//clear and load the user control to the panel of the form displayed
this.controlPanel.Controls.Clear();
this.controlPanel.Controls.Add(controlForm2);

However, this is not an appropriate way of handling this kind of control. You should make a form that receives parameters from the click event to generate the corresponding form based on what has user clicked in the list view.

于 2013-08-29T04:35:48.850 回答