我在主窗口中放置了一个usercontrol,现想通过usercontrol中的一个按钮对另外一个usercontrol中的一个控件进行操作,求助各位大神在usercontrol中获取另外一个usercontrol的控件?
增加带参数的构造函数,在实例化UserControl的时候,把主窗口传递给UserControl。
Application.Current.MainWindow as MainWindow;
另起一个调度线程,再获取主窗体
this.Dispatcher.Invoke(() =>
{
var MW= Application.Current.MainWindow as MainWindow;
MW.Func(xxx);
});
都WPF, 还整天想着操作控件,说好的MVVM呢?!
最好是子UserControll公开一个事件,主窗口注册这个事件即可。
不符合代码逻辑。
应该这样 —— 把UserControl中按钮弄成其成员事件;然后窗口来使用这个事件。
非要这么写,无非是传参传递或者static传递。
用Window.GetWindow(this)就可以拿到当前控件所在的窗体,然后你想干嘛就干嘛了。
不过,这种工作,MVVM才是最适合的,一个通知发出去就好了。
设置一个两个窗体都可以访问的dataContext。mvvm啊。