wpf中datacontext问题。

a40528166 2016-12-06 10:12:36
新接触wpf对datacontext指向很不理解。。
this.datacontext = new ClassA() 这是什么意思 datacontext指向一个新的classA的实例?
是不是UI层控件的属性的binding的path就能指向这个ClassA实例的属性了呢
那这个实例怎么得到它呢
...全文
305 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
在WPF编程中,常常需要将界面元素与某些数据进行绑定。这些被绑定的数据属性可能是依赖属性也可能不是依赖属性(CLR对象)。为了方便,我们可以将所有要进行绑定的数据放到一起,然后实例化之后赋值给DataContext 属性。因此DataContext 属性可以看做是绑定是数据源,它指向参与绑定的数据的来源。在绑定的过程中,如果没有指明数据来源(比如写明Binding ElementName),系统会查找DataContext 属性所指向的实例,根据给出的Path找到数据完成绑定。 所以你说的UI是对的,至于这个实例是怎么得到的,是你自己根据绑定的时候需自己构造的,当然也有可能是已经存在的。
xinweilee 2016-12-06
  • 打赏
  • 举报
回复
实例对象需要自己来维护。 在ui层,可以通过datacontext获取classA的实例:ClassA a = this.DataContext as ClassA;
  • 打赏
  • 举报
回复
exception92 2016-12-06
  • 打赏
  • 举报
回复
该 datacontext 为Object类型,ui层可以直接指定到它的属性。将UIElement的DataContext转为指定的对象即可。
在Windows系统,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS的经典DEMO,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大WPF项目必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程,赵老师带领你在WPF,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手“复活”。在课程,赵老师会详细讲解WPF和MVVM的各种技巧,让你从此爱上WPF+MVVM编程。

110,571

社区成员

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

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

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