精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止全文或局部转载,禁止任何形式的非法使用,侵权必究。点名“简易百科”和闲暇巴盗用锐英源原创内容。
近期看HandyControl控件例子,看里面树形,照抄下如下的xaml:
<TreeView Width="120" Height="800" Margin="16" ItemsSource="{Binding DataList}">
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding DataList}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
DataList也是按例子里形式组织了数据,树形形式,父子形式的数据,在Binding里也能正常输入Name,但是界面上就是不显示节点,用静态没绑定的形式节点能立即显示。
这是典型的Copy代码导致的问题。
后来看其它属性里带有:
RaisePropertyChanged();
把数据改成属性,上面代码行加上,树形节点就显示了。
WPF的ViewMode属性通知UI更新,必须要用RaisePropertyChanged(),HandyControl例子架构里有这个机制,而我这没代码没有底层机制支持,所以不行,这是环境架构导致的问题,也是对WPF特点没掌握的原因。