wpf - 如何验证虚拟化 ListView ?

标签 wpf validation listview virtualization

我在 ItemTemplate 中有一些带有 userControl 的 listView。此 UserControl 包含一些我需要验证的文本框。在我为 ListView 启用虚拟化之前,一切正常。现在验证仅适用于可见项目。

我该如何解决这个问题?

最佳答案

因为 UI 虚拟化回收了可视化容器,它会重置它们,所以解决方案是手动绑定(bind)到用户控件中的一些属性,并在 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

或者

您可以让您的 View 模型实现 IDataErrorInfo 并使用该接口(interface)来定义您的验证规则

This网站有一个很好的例子。

关于wpf - 如何验证虚拟化 ListView ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10598144/

相关文章:

c# - 带有Show.Busy()和Show.NotBusy()的Caliburn错误

java - 您将如何轻松验证 JSP 选项选择列表?

linux - 使用 Unix Shell 验证日期的一致性

javascript - 属性 data_nonce、data_action、data_postid 不允许错误

android - Spinner OnItemSelectedListener 不适用于 CustomListAdapter

android - Fragment 中的 notifyDataSetChanged() 不刷新 ListView

c# - DependencyProperty typeof GridLength 未将值 "Auto"传递给 CustomControl 中的 ChildElement

c# - WPF XAML 合并默认命名空间定义

java - 更新 ListView 不起作用

.net - WPF GUI 负责什么?