永发信息网

WPF 怎么访问主窗体里面的控件

答案:1  悬赏:0  手机版
解决时间 2021-04-06 15:52
WPF 怎么访问主窗体里面的控件
最佳答案
新窗体和主窗体不是父子关系,当然找不到。
这两种窗体间的交互我知道的有几种方法
1:设置子窗体的拥有者为主窗体
2:使用一个全局变量,并在变量改变通知主窗体
3:使用Prism的aggregaterg事件,子窗口发布聚合事件,主窗体接收追问具体代码呢,不会写追答1:例如 MainWindow是主窗体,SubWindow是子窗体

在主窗体中弹出新窗体时

SubWindow sub=new SubWindow();
sub.Owner=this

sub.Show();
这时你在subwindow就可以查找到MainWindow
Window w = this.Owner; 这里的w就是你的主窗体了
DataGrid grid = w.FindName("dg") as DataGrid; 这就是主窗体上的Datagrid控件了,这样你想怎么样就怎么样了
2:有点麻烦就不说了
3:使用前先引用 Microsoft.Practices.Prism.Events;
第一步:在基础模块中定义事件
public class SendTextEvent
: CompositePresentationEvent { }
这里的string只是表示方便,可以是任何类
第二步,在子窗体中发布事件
private IEventAggregator eventAggregator = ServiceLocator.Current.GetInstance(); 这是字段
eventAggregator.GetEvent().Publish(SendMessage);这是你要传递的数据
第三步,订阅事件
IEventAggregator eventAggregator= ServiceLocator.Current.GetInstance();

SubscriptionToken token =
eventAggregator.GetEvent().Subscribe(GetText);;
private void GetText(string obj)

{

//在这里处理你的数据

}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
爱情说说大全一句话,说一说我们生活中常见的
天津塘沽121工交车多久一班
野当归的外观
看着自己儿子每天都能挣十个工分,他的父亲别
根据上下文解释划线词语。【小题1】说着往后
盗墓笔记电影台词英语,求一部英文电影片段,
如何搞定老丈人
ishmael 代表什么?不用一堆文字的
从武窑村出发到地铁十号线泥洼站怎么走
西门吹雪为什么追杀陆小凤
锂离子18650,2000毫安电池的内阻是多少是正
氩弧焊焊接4mm钢丝用多大直径的乌针
狗狗怎么干洗,狗狗干洗粉怎么用?对身体有危
2010年4月14日7时49分青海省玉树藏族自治州玉
妻夫木聪在日本用什么软件 类似中国明星用微
推荐资讯
处女膜被破了有多疼 很疼吗
The company has changed some of its workin
一般汽车用什么型号的机油
城南旧事的好词佳句,XP会不会比98更加充分的
根据下面的语境,为空格处选择合适的词语,将
单选题有关感受器的叙述,错误的是A.感受器是
读下面的资料和“宜万铁路线路图”,回答下列
板泉的特产有什么?
都说不主动的男生坚决不能要!男生们请告诉我
手机农行的动态口令卡一样吗
从邹平去济多少钱南客车有几点的
htc-301温湿度控制仪说明书
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?