C# 按钮触发将被另一个类捕获的事件或命令
我试图从一个按钮触发一个事件,该按钮将在另一个类中捕获,而不将该类作为我的类中的实例。我可以这样做吗 假设我的按钮是在PictoPanelViewModel中创建的,并且这个类没有任何对MainViewModel的引用,我希望myButton触发一个事件,该事件将调用MainViewModel中的一个方法 我试过myButton.Command和myButton.Click,但这两个都需要一个MainViewModel的引用,这样我就可以调用它了 我现在有点困惑 编辑C# 按钮触发将被另一个类捕获的事件或命令,c#,events,button,event-handling,icommand,C#,Events,Button,Event Handling,Icommand,我试图从一个按钮触发一个事件,该按钮将在另一个类中捕获,而不将该类作为我的类中的实例。我可以这样做吗 假设我的按钮是在PictoPanelViewModel中创建的,并且这个类没有任何对MainViewModel的引用,我希望myButton触发一个事件,该事件将调用MainViewModel中的一个方法 我试过myButton.Command和myButton.Click,但这两个都需要一个MainViewModel的引用,这样我就可以调用它了 我现在有点困惑 编辑 按钮是在PictoPane
按钮是在PictoPanelViewModel中动态创建的SI假设MainViewModel至少在一瞬间引用了PictoPanelViewModel,最坏的情况是,按钮当时尚未创建。如果是这样,我会:
this.myButton.Click += new System.EventHandler(this.TriggerMyButtonClickedEvn);
public event EventHandler myButtonClickedEvn;
private void TriggerMyButtonClickedEvn(object sender, EventArgs e)
{
if (myButtonClickedEvn != null)
myButtonClickedEvn(sender, e);
}
aPictoPanelViewModel.myButtonClickedEvn += new System.EventHandler (myButtonClickedInPictoPanelViewModel);
在MainViewModel中(在有PictoPanelViewModel实例的地方):
MainViewModel是否引用PictoPanelViewModel?