c# - MaterialDesign 多个对话框

标签 c# wpf xaml dialog material-design-in-xaml

我正在使用 mahapp 和 materialdesign 开发桌面应用程序。我试图在同一个用户控件中有两个不同的对话框。它们看起来像这样:

<materialDesign:DialogHost x:Name="MachineDialogWindow" Identifier="2" Visibility="{Binding Visibility, ElementName=card}">
<grid></grid>
</materialDesign:DialogHost>

 <materialDesign:DialogHost x:Name="DialogWindow" Visibility="{Binding ActiveDirectoryResult, Mode=OneWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource NullVisibilityConverter}}">
<grid></grid>
</materialDesign:DialogHost>

为了简单起见,我删除了大部分代码。当我尝试像这样在 C# 中创建对话主机时:

var view = new MachineNameDialogView();
            {
                DataContext = new MachineNameDialogViewModel();
            }
            ;

            //show the dialog
var result = await DialogHost.Show(view, AddAdministratorEventHandlerOpenedEventHandler,
                                         AddAdministratorClosingEventHandler);

它工作正常,但在错误的 Dialoghost 中显示窗口。我在第一个窗口中添加了一个标识符,但我不知道如何将它与 Dialoghost.show 命令一起传递 Dialoghost.show
我需要 dialogClosingEventHandler,但我可以看到有一个带有 Object dialogIdentifier 的方法重载。所以我的问题是,有没有可能两全其美,两者兼得?以及如何将我的标识符 2 作为对象传递给该方法?

最佳答案

我想通了。现在我觉得自己很愚蠢。我在上面发布的图片底部的点显然意味着有更多的过载。 Peek Definition
我所做的只是右键单击 Dialoghost.Show 并单击 Peek Definition (Alt+F12) 并找到

public static Task<object> Show(object content, object dialogIdentifier, DialogOpenedEventHandler openedEventHandler, DialogClosingEventHandler closingEventHandler);

希望这至少可以帮助将来的某个人:)

关于c# - MaterialDesign 多个对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37065578/

相关文章:

c# - 我如何遍历 PropertyCollection

C#/XAML/WPF 绑定(bind)部分工作,仅显示列表中的第一项

wpf - 我必须使用 CommandTarget 吗?我认为任何聚焦的元素都会收到命令

xaml - 如何更改AppBarButton圆圈和图标颜色Windows Phone 8.1页面底栏

c# - 如何对 0..n 关系进行 linq 主详细信息查询?

具有异步任务和相关后异步任务的 C# ForEach 循环

c# - 文本框验证奇怪的行为

c# - 如何通过 wpf 中的行和列获取网格子项?

c# - 您是否以句点结束您的异常消息?

wpf - 从 ColumnDefinition 宽度绑定(bind) TextBox 宽度 XAML WPF