请问WPF中Page之间如何相互访问对方的控件?

shaw118 2020-09-11 06:30:22
我当前的设计结构是
MainWindow
--BasePage
-----Page1
-----Page2

我当前已经在BasePage声明每个Page的句柄.

public WebInfoPage _wiPage;
public DictPage _dicPage;


并在WebInfoPage构造函数中..

this._wiPage = this;


但我在DictPage调用 this._wiPage 得到确是NULL ..

请问WPF中Page之间如何相互访问对方Page的控件????
...全文
7739 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
datafansbj 2020-09-16
  • 打赏
  • 举报
回复
引用 12 楼 shaw118 的回复:
[quote=引用 8 楼 datafansbj的回复:]this._wiPage = this;
这语句很费解,用意是什么?

这个是把该类指针赋值给父类属性,然后从别的类中获取指针操作。[/quote]

既然类成员 _wiPage 都公开了,直接访问 xxx._wiPage 就可以了,为什么还要将该属性指向自身呢?
shaw118 2020-09-15
  • 打赏
  • 举报
回复
引用 8 楼 datafansbj的回复:
this._wiPage = this;
这语句很费解,用意是什么?
这个是把该类指针赋值给父类属性,然后从别的类中获取指针操作。
shaw118 2020-09-15
  • 打赏
  • 举报
回复
请问在哪里能获取到最后一个实例?page的代码都是在xaml文件中生成的。
shaw118 2020-09-15
  • 打赏
  • 举报
回复
引用 6 楼 strife013的回复:
x:Name
x:name 只有在mainWindow.xaml 能访问到 page中访问不到
assky124 2020-09-15
  • 打赏
  • 举报
回复
MVVM ,直接修改VM对象
shaw118 2020-09-14
  • 打赏
  • 举报
回复
引用 4 楼 ziqi0716的回复:
把需要操作的过程封装成一个对外的方法,要不就考虑下操作ViewModel
现在主要问题是在一个page类中获取不到腰操作的page对象。
ziqi0716 2020-09-14
  • 打赏
  • 举报
回复
把需要操作的过程封装成一个对外的方法,要不就考虑下操作ViewModel
datafansbj 2020-09-14
  • 打赏
  • 举报
回复
this._wiPage = this;
这语句很费解,用意是什么?
ziqi0716 2020-09-14
  • 打赏
  • 举报
回复
引用 5 楼 shaw118 的回复:
[quote=引用 4 楼 ziqi0716的回复:]把需要操作的过程封装成一个对外的方法,要不就考虑下操作ViewModel
现在主要问题是在一个page类中获取不到腰操作的page对象。[/quote] 每个page类搞一个静态的Instance属性,用于存储最后一个实例化的对象,通过Instance就能获取到了,这个你可以学下设计模式,比如单例模式,工厂模式. 哎,有10000种方法实现呀
嘴哥臭鼬 2020-09-14
  • 打赏
  • 举报
回复
x:Name
shaw118 2020-09-11
  • 打赏
  • 举报
回复
我把_wiPage放在BasePage中. 其它Page都继承自 BasePage . 在子类的 WebInfoPage构造函数 已经赋值给 this._wiPage 了... 如果不用这种方法,还有其它办法嘛?
八爻老骥 2020-09-11
  • 打赏
  • 举报
回复
先搞清楚变量的作用域啊。
八爻老骥 2020-09-11
  • 打赏
  • 举报
回复
你没给this._wiPage赋值。

111,096

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧