2012-05-15 3 views
3

ItemTemplate에서 userControl을 사용하는 listView가 있습니다. 이 UserControl에는 유효성을 검사해야하는 일부 textBoxes가 포함되어 있습니다. ListView의 가상화를 활성화 할 때까지 모든 것이 잘 작동합니다. 이제 유효성 검사는 표시 항목에만 적용됩니다.가상화 된 listview에 대한 검증은 어떻게합니까?

어떻게 해결할 수 있습니까?

답변

1

UI 가상화가 시각적 컨테이너를 재활용하기 때문에 시각적 컨테이너가 재설정되므로 사용자 컨트롤의 일부 속성에 수동으로 바인딩하고보기 모델에서 유효성 검사를 수행하는 것이 솔루션입니다. 그런 다음 유효성 검사를 통과하지 못하면 테두리 색과 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

또는

당신은 당신의보기 모델 IDataErrorInfo를 구현해야하고

This 사이트가 좋은 예제가 유효성 검사 규칙을 정의하는 인터페이스를 사용할 수 있습니다.