我正在使用Catel + Orchestra.MahApps来构建我的应用程序。
我试图让自定义Dialog正常工作,而现在我已经卡住了。
我创建了SimpleDataWindow:
<orchestra:SimpleDataWindow x:Class="OrtMan.ViewModule.Photos.Views.NewPhotoWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:catel="http://catel.codeplex.com"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:orchestra="https://github.com/orcomp/orchestra"
xmlns:viewModels="clr-namespace:OrtMan.ViewModule.Photos.ViewModels"
d:DataContext="{d:DesignInstance viewModels:NewPhotoWindowViewModel}"
mc:Ignorable="d">
<Grid>
<TextBlock Text="aaa" />
</Grid>
</orchestra:SimpleDataWindow>
然后我试图从我的ViewModel中显示它:
var uiservice = ServiceLocator.Default.ResolveType<IUIVisualizerService>();
var showDialog = uiservice.ShowDialog<NewPhotoWindowViewModel>();
if (showDialog == true)
{
...
}
结果是:
- Catel日志出错:Property 'Owner' is not found on the object 'NewPhotoWindow', probably the wrong field is being mapped
- 对话框显示但没有内容
- 它会自动返回true
作为dialogResult
我尝试了多种IUIVisualizerService
方法:Show / ShowDialog以及async。总是同样的问题。
我做错了吗?
答案 0 :(得分:0)
如果我没记错的话,MahApps.Metro中的所有对话都是异步的。这意味着您应该使用IUIVisualizerService的异步方法来显示对话框。