【发布时间】:2010-09-28 05:34:52
【问题描述】:
这里有两个问题。
我的视图有一个“关闭”按钮,单击该按钮时,窗口应该关闭。我按如下方式处理:视图中的按钮绑定到视图的视图模型中定义的命令,触发该命令时会运行以下命令:
private void Exit()
{
var regionManager = Container.Resolve<IRegionManager>();
MyView existingView = regionManager.Regions["MyWindowRegion"].GetView("MyView") as MyView;
if (existingView != null)
{
regionManager.Regions["MyWindowRegion"].Remove(existingView);
}
}
这样好吗?视图模型现在是否对视图了解太多(例如它的名称和类型)?
与第一个问题类似,在我的模块工具栏中,如果我点击“启动模块”按钮,它将创建/显示一个视图。我这样做是为了如果视图已经可见,而不是再次创建它,视图模型只会使现有的视图成为焦点:
private void LaunchMyView()
{
var regionManager = Container.Resolve<IRegionManager>();
MyView existingView = regionManager.Regions["MyWindowRegion"].GetView("MyView") as MyView;
if (existingView == null)
{
MyView view = Container.Resolve<MyView>();
view.Title = "MyView Title";
regionManager.Regions["MyWindowRegion"].Add(view, "MyView");
}
else
{
regionManager.Regions["MyWindowRegion"].Activate(existingView);
}
}
同样的问题。视图模型是否对视图了解太多?
顺便说一句,我正在使用WindowsRegionAdapter 来处理新视图的创建。
谢谢。
【问题讨论】: