提问人:Brudi_Voeller 提问时间:6/14/2023 更新时间:6/14/2023 访问量:66
在不引用的情况下从类外部调用事件
Call event outside from class without reference
问:
我想从另一个类调用 C# ContentDialog,例如:
var myDialog = new MyDialog();
await myDialog .ShowAsync();
但我不想在课堂上引用此对话框。 稍后,我想访问该对话框以更改进程栏的状态。 我的想法是在 myDialog 中创建一个事件,该事件由构造类的方法调用。 这是否可能,或者是否有其他可能性可以完成此操作?
感谢您的帮助!
答:
1赞
Felix
6/14/2023
#1
如果没有对实例或该实例的成员进行任何引用(例如,对处理事件的方法的引用),您将无法逃脱。那是因为没有办法访问你不再知道的东西。myDialog
一种解决方案可能如下(这可能是您已经想到的):
- 创建实例。
MyDialog
myDialog
- 保存对 instace 方法的引用。这可以通过将方法添加到调用类中的事件来完成:
UpdateStatusBar()
myDialog
//event
public event Action NewStatusAvaliable;
//event handler assignment (without arguments)
NewStatusAvaliable += myDialog.UpdateStatusBar;
//or with arguments
NewStatusAvaliable += () => myDialog.UpdateStatusBar();
- 叫
myDialog.ShowAsync();
评论
Window
ShowDialog