【问题标题】:MaterialDesign multiple dialogsMaterialDesign 多个对话框
【发布时间】:2016-05-06 06:17:29
【问题描述】:

我正在使用 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 命令 一起传递
我需要 dialogClosingEventHandler,但我可以看到Object dialogIdentifier 有一个方法重载。所以我的问题是有可能两全其美并得到两者吗?以及如何将我的标识符 2 作为对象传递给方法?

【问题讨论】:

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


    【解决方案1】:

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

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

    希望这可能至少对将来的某人有所帮助:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多