3
我在ItemTemplate中有一些listView和userControl。此UserControl包含一些我需要验证的文本框。一切正常,直到我启用ListView的虚拟化。现在验证仅适用于可见项目。如何验证虚拟化的listview?
我该如何解决这个问题?
我在ItemTemplate中有一些listView和userControl。此UserControl包含一些我需要验证的文本框。一切正常,直到我启用ListView的虚拟化。现在验证仅适用于可见项目。如何验证虚拟化的listview?
我该如何解决这个问题?
由于UI虚拟化回收可视容器,它将重置它们,因此解决方案将手动绑定到用户控件中的某些属性,并在View Model中进行验证。然后,当它未通过验证时,将UserControl的边框颜色和大小更改为红色和较粗的边框。
<UserControl...>
<Grid>
<Border BorderThickness="{Binding Path=Border_Thickness_property}" BorderBrush="{Binding Path=Border_brush_color}">
<!-- Put your textboxes and such here... -->
</Border>
</Grid>
</UserControl>
参考:http://www.codeproject.com/Articles/34405/WPF-Data-Virtualization
OR
你可以有你的视图模型实现IDataErrorInfo的,并使用该接口来定义的验证规则
This网站有一个很好的例子。