WPF自定义控件数据绑定出现的问题
Posted shiyingzhi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF自定义控件数据绑定出现的问题相关的知识,希望对你有一定的参考价值。
测试发现,父控件构造函数中初始化界面的部分会完成子控件与父控件ViewModel
的数据绑定。因此,如果在父控件构造函数执行前初始化父控件ViewModel
中的属性,将导致在子控件执行OnApplyTemplate
时无法获取到绑定的改属性。因此,需要尽量避免在父控件构造前构造父控件的ViewModel
。
正常情况下,ViewModel
的初始化都会在控件构造前。我遇到这个问题是由于使用DataTemplate+ViewModel
进行控件切换,需要提前初始化ViewModel
作为DateTemplate
选择View
的依据。
我发现TextBox
这类原生框架并不会因为这种顺序的差异而出现问题,本质上还是自己写的自定义控件存在缺陷。日后我会继续寻找这个缺陷,现在出现的这个问题,我会通过在父控件InitializeComponent()
方法前再次初始化ViewModel
中属性的方式解决。
以上是关于WPF自定义控件数据绑定出现的问题的主要内容,如果未能解决你的问题,请参考以下文章
WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)对象绑定
WPF 动态列(DataGridTemplateColumn) 绑定数据 (自定义控件)