我是创建Silverlight应用程序的新手。我继承了一个代码库,我被告知使用的是Prism。根据我在代码库中看到的情况,这看起来是真的。我的问题是,我只是想打开一个对话框窗口并关闭一个对话窗口。
要打开对话框窗口,我正在使用以下内容:
UserControl myDialog = new MyDialog();
IRegion region = myRegionManager.Regions["DIALOG_AREA"];
IRegionManager popupRegionManager = region.Add(myDialog, null, true);
region.Activate(myDialog);
出现了我设计的对话框。它有两个按钮:“确定”和“取消”。当用户单击这些对话框时,我想关闭对话框。我的问题是,我不知道该怎么做。因为对话框不是ChildWindow,所以我无法调用this.Close()。但是,当我将MyDialog更改为ChildWindow时,它被包含在一些自定义窗口chrome中,我无法弄清楚如何摆脱它。
如何关闭Prism中的对话框?谢谢!
答案 0 :(得分:0)
您应该将ViewModel调用为调用对话窗口的服务,而不是放在不同的区域。
public MainPageViewModel(IMainPage view,
ILoginBox loginBox )
: base(view)
{
this.view = view;
this.loginBox = loginBox;
}
public interface ILoginBox
{
void Show();
}
记得使用IOC容器并在ModuleClass上声明:
protected override void RegierTypes()
{
base.Container.RegisterType<ILoginBox , LoginBox>();
}
我希望它有所帮助。
如果您仍在寻找示例,请检查: another Stackoverflow sample