我想从另一个类调用C# ContentDialog,如下所示:
var myDialog = new MyDialog(); await myDialog .ShowAsync();
但我不想在课堂上提到这个对话框。稍后我想访问对话框来更改进程栏的状态。我的想法是在myDialog中创建一个事件,由构造类的方法调用。这是可能的,还是有其他的可能性来完成这件事?谢谢你的帮助!
bejyjqdl1#
如果没有对myDialog示例或该示例的成员的任何引用,您将无法逃脱。对处理事件的方法的引用)。那是因为没有办法访问你不再知道的东西。一个解决方案可能如下所示(这可能是您已经想到的):
myDialog
MyDialog
UpdateStatusBar()
//event public event Action NewStatusAvaliable; //event handler assignment (without arguments) NewStatusAvaliable += myDialog.UpdateStatusBar; //or with arguments NewStatusAvaliable += () => myDialog.UpdateStatusBar();
myDialog.ShowAsync();
1条答案
按热度按时间bejyjqdl1#
如果没有对
myDialog
示例或该示例的成员的任何引用,您将无法逃脱。对处理事件的方法的引用)。那是因为没有办法访问你不再知道的东西。一个解决方案可能如下所示(这可能是您已经想到的):
MyDialog
示例myDialog
。myDialog
示例的UpdateStatusBar()
方法的引用。这可以通过将方法添加到调用类中的事件来完成:myDialog.ShowAsync();