MaterialDesign多个对话框

时间:2016-05-06 06:17:29

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

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

<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#中创建一个dialoghost时:

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作为对象传递给方法?

1 个答案:

答案 0 :(得分:3)

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

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

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

相关问题