XAML 在类外部调用事件而不引用

pgccezyw  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(75)

我想从另一个类调用C# ContentDialog,如下所示:

var myDialog = new MyDialog();
await myDialog .ShowAsync();

但我不想在课堂上提到这个对话框。稍后我想访问对话框来更改进程栏的状态。我的想法是在myDialog中创建一个事件,由构造类的方法调用。这是可能的,还是有其他的可能性来完成这件事?
谢谢你的帮助!

bejyjqdl

bejyjqdl1#

如果没有对myDialog示例或该示例的成员的任何引用,您将无法逃脱。对处理事件的方法的引用)。那是因为没有办法访问你不再知道的东西。
一个解决方案可能如下所示(这可能是您已经想到的):

  • 创建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();

相关问题