WPF:处理模态对话框
我在这个网站上找到了一个很好的解决方案 但我必须做一些修改,才能将其集成到我的代码中。在这个过程中,我遇到了一些小问题,主要是因为我没有完全理解代码的某些部分 我是如何将ModalDialogManager绑定到IDialogViewModel类型的MainWindow属性的。然后,我有了一个WindowsManager类,该类负责将正确的实例放入该属性中。其中一个是EditDialogViewModel,它将EditableViewModel公开给此DialogManager。我将EditDialog视图设置为此EditDialogViewModel的数据模板,但当我显示它时,新窗口仅显示其中的一部分 以下是视图:WPF:处理模态对话框,wpf,xaml,data-binding,dialog,modal-dialog,Wpf,Xaml,Data Binding,Dialog,Modal Dialog,我在这个网站上找到了一个很好的解决方案 但我必须做一些修改,才能将其集成到我的代码中。在这个过程中,我遇到了一些小问题,主要是因为我没有完全理解代码的某些部分 我是如何将ModalDialogManager绑定到IDialogViewModel类型的MainWindow属性的。然后,我有了一个WindowsManager类,该类负责将正确的实例放入该属性中。其中一个是EditDialogViewModel,它将EditableViewModel公开给此DialogManager。我将EditDi
<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="EditDataTemplates.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="7*" />
<RowDefinition Height="2*" />
<RowDefinition Height="1*" />
</Grid.RowDefinitions>
<ContentControl Content="{Binding Path=ViewModel}" />
<TextBlock Text="{Binding Path=ViewModel.Error}" />
<UniformGrid Grid.Row="2" Columns="2">
<Button Command="{Binding SaveCommand}" />
<Button Command="{Binding CancelCommand}" />
</UniformGrid>
</Grid>
</UserControl>
他正在那里应用绑定,但我想这只是第一个被绑定的ContentControl之类的东西。这很棘手
另一个问题是鼠标在模式对话框中不起作用。我可以用tab键进入文本框,但不能点击
有没有办法解决这个问题,或者有更好的方法来处理WPF中的模态对话框
编辑
好吧,我承认。我是个大白痴。这太简单了,我就是看不见。我已经将UserControl上的高度和宽度设置为一个固定的值,而我仍然把它当作一个窗口来摆弄。所以事实上,它展示了整个事情,只是没有空间。我不知道为什么鼠标在那一点上不工作,但现在它工作得很好。回答“在WPF中处理模式对话框的更好方法?”WPF扩展工具包中有一个解决模式对话框问题的方法
事实上,我认为我只是做错了一些简单的事情。但这是一个很好的信息。
void Show()
{
if (_window != null) Close();
Window w = new Window();
_window = w;
w.Closing += w_Closing;
w.Owner = GetParentWindow(this);
w.DataContext = this.DataContext;
w.SetBinding(Window.ContentProperty, ""); //This code here does something I don't fully understand
w.Title = Title;
w.Icon = Icon;
w.Height = DialogHeight;
w.Width = DialogWidth;
w.ResizeMode = DialogResizeMode;
w.ShowDialog();
}