ItemTemplate に userControl を含む listView があります。この UserControl には、検証が必要なテキスト ボックスがいくつか含まれています。ListView の仮想化を有効にするまで、すべて正常に動作します。現在、検証は表示されているアイテムに対してのみ機能します。
どうすればこれを解決できますか?
ItemTemplate に userControl を含む listView があります。この UserControl には、検証が必要なテキスト ボックスがいくつか含まれています。ListView の仮想化を有効にするまで、すべて正常に動作します。現在、検証は表示されているアイテムに対してのみ機能します。
どうすればこれを解決できますか?
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 を実装させ、そのインターフェイスを使用して検証ルールを定義できます。
このサイトには良い例があります。