WPF自定义控件数据绑定出现的问题


测试发现,父控件构造函数中初始化界面的部分会完成子控件与父控件ViewModel的数据绑定。因此,如果在父控件构造函数执行前初始化父控件ViewModel中的属性,将导致在子控件执行OnApplyTemplate时无法获取到绑定的改属性。因此,需要尽量避免在父控件构造前构造父控件的ViewModel

正常情况下,ViewModel的初始化都会在控件构造后。我遇到这个问题是由于使用DataTemplate+ViewModel进行控件切换,需要提前初始化ViewModel作为DateTemplate选择View的依据。

我发现TextBox这类原生框架并不会因为这种顺序的差异而出现问题,本质上还是自己写的自定义控件存在缺陷。日后我会继续寻找这个缺陷,现在出现的这个问题,我会通过在父控件InitializeComponent()方法前再次初始化ViewModel中属性的方式解决。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM