我有一个 WPF 窗口,它在构造函数中接受一些参数。然后我使用这些构造函数来设置窗口的状态。该构造函数过程的一部分是实例化我的视图模型类,然后将其设置为窗口DataContext
.
我的问题是我什么时候应该设置我的DataContext
等于我的视图模型对象——在调用之前或之后InitializeComponent()
?
我问是因为如果我事先设置它,那么我需要手动启动执行的代码after窗口已经初始化,因为某些事件应该在DataContext
被分配或重新分配。
我的假设是,如果我设置了DataContext
致电后InitializeComponent()
但在最后决定以这种方式连接我的窗户之前,我想征求有关此事的建议。如果我设置了我的设置,我是否会错过一些可能会回来困扰我的东西DataContext
致电后InitializeComponent()
?
我的问题是何时应该将 DataContext 设置为等于视图模型对象——在调用 InitializeComponent() 之前还是之后?
除非您依赖于在调用 InitializeComponent() 期间建立的某些绑定,否则这应该不重要,例如ElementName
绑定:
无法将 ItemsSource 绑定到 ElementName https://stackoverflow.com/questions/42006829/cannot-bind-itemssource-to-elementname/42007019#42007019
The InitializeComponent()
方法本身定位已编译的 XAML 文件的 URI 并将其传递给LoadComponent()
解析 BAML(即编译的 XAML)并创建您在 XAML 标记中定义的元素的实例的方法:
.xaml 和 .xaml.cs 文件之间有什么联系 https://stackoverflow.com/questions/41344321/what-is-the-connection-between-xaml-and-xaml-cs-files/41345998#41345998
只需设置DataContext
将窗口属性绑定到视图模型类的实例(视图中的元素绑定到该实例)也可以在调用InitializeComponent()
方法。无论如何,这些绑定在构造函数返回之前都不会解析。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)