【发布时间】:2020-06-11 10:49:14
【问题描述】:
我正在使用 prism 对话框在 MVVM 中显示对话框弹出窗口。
_iDialogService.ShowDialog("View", new DialogParameters(""), CallBackResult=>
{
var test = CallBackResult;
});
【问题讨论】:
我正在使用 prism 对话框在 MVVM 中显示对话框弹出窗口。
_iDialogService.ShowDialog("View", new DialogParameters(""), CallBackResult=>
{
var test = CallBackResult;
});
【问题讨论】:
您在盘旋的内容来自 DialogWindow 而不是 Dialog View。因此,您需要提供一个按您想要的方式配置的自定义对话框窗口。
请注意,您可以在 GitHub 上看到作为 Prism 的一部分提供的默认 DialogWindow。
您可以通过从对话框窗口继承并设置所需的属性来创建自己的对话框窗口。或者,您可能只想从 Window 继承并实现 IDialogWindow。
public class MyDialogWindow : DialogWindow
{
}
public class MyOtherDialogWindow : Window, IDialogWindow
{
}
在您的 Bootstrapper 或 PrismApplication 中,您需要确保将您的 Window 与您的 Dialogs 一起注册:
containerRegistry.RegisterDialog<MyDialog>();
containerRegistry.RegisterDialogWindow<MyDialogWindow>();
最后一定要在你使用DialogService的时候加上你的对话框的名字
dialogService.ShowDialog("MyDialog", parameters, onDialogClosed, "MyDialogWindow");
【讨论】:
register: containerRegistry.RegisterDialogWindow<MyDialogView>();
call: _iDialogService.ShowDialog("MyDialogView", new DialogParameters(""), result => { SlideDescription = _viewModelShareData.SlideDescription; });
view: public class MyDialogViewModel : DependencyObject, INotifyPropertyChanged, IDialogWindow
viewmodel: public class MyDialogViewModel : DependencyObject, INotifyPropertyChanged, IDialogAware