WPF MVVM 如何创建没有输入数据的新 Window 实例
WPF MVVM How to create new Window instance with no input data
在 WPF (MVVM) 中,当我创建 window 的新实例(视图)时,它没有输入数据 - 但是当我输入一些数据时,关闭 window 并重新打开它包含相同的数据因为 window 被关闭了。如何每次提供"fresh" window(需要填写的空白字段)实例?
我已经尝试了很多东西,现在我的 class "ViewService" 看起来像这样。
public class ViewService : IViewService
{
public void Show<T>()
{
try
{
T window = Activator.CreateInstance<T>();
var view = window as Window;
view.Show();
}
catch (Exception)
{
}
}
public void ShowDialog<T>()
{
try
{
T window = Activator.CreateInstance<T>();
var view = window as Window;
view.ShowDialog();
}
catch (Exception)
{
}
}
非常感谢您的帮助。
PS。我使用 SimpleIoC 容器来注册视图模型。
Simpleioc 将为您提供任何类型的单例,因此每次给定视图模型的相同实例。
因此,你的问题。
两者皆有。
使用更复杂的不同依赖注入系统,每次都会 return 一个新实例。
或者。
根本不要注入您的 window 视图模型。
在 WPF (MVVM) 中,当我创建 window 的新实例(视图)时,它没有输入数据 - 但是当我输入一些数据时,关闭 window 并重新打开它包含相同的数据因为 window 被关闭了。如何每次提供"fresh" window(需要填写的空白字段)实例?
我已经尝试了很多东西,现在我的 class "ViewService" 看起来像这样。
public class ViewService : IViewService
{
public void Show<T>()
{
try
{
T window = Activator.CreateInstance<T>();
var view = window as Window;
view.Show();
}
catch (Exception)
{
}
}
public void ShowDialog<T>()
{
try
{
T window = Activator.CreateInstance<T>();
var view = window as Window;
view.ShowDialog();
}
catch (Exception)
{
}
}
非常感谢您的帮助。
PS。我使用 SimpleIoC 容器来注册视图模型。
Simpleioc 将为您提供任何类型的单例,因此每次给定视图模型的相同实例。
因此,你的问题。
两者皆有。
使用更复杂的不同依赖注入系统,每次都会 return 一个新实例。
或者。
根本不要注入您的 window 视图模型。