DataPresenter コントロールは、フィルター条件に一致しないレコードを非表示にします。ただし、 FieldLayoutSettings オブジェクトの FilterAction プロパティを Disable または None に設定することによりこの動作を変更できます。FilterAction プロパティを Disable に設定すると、エンドユーザーがフィルターして除外するレコードは無効になりますが表示された状態が続きます。一方、FilterAction プロパティを None に設定すると、レコードがフィルターして除外されたことが視覚的にまったく表れません。この動作によって、エンドユーザーがフィルターして除外するレコードの外観を変更するためにトリガーを使用して自分自身のスタイルを実装することができます。
以下のコード例は、フィルターされたレコードの外観を変更する方法を示します。例のコードが xamDataPresenter コントロールを使用しているとしても、xamDataGrid コントロールを代わりに使用できます。
XAML の場合:
<!--スタイルをリソース ディクショナリに追加します--> <Style TargetType="{x:Type igDP:DataRecordCellArea}"> <Style.Triggers> <Trigger Property="IsFilteredOut" Value="True"> <Setter Property="Opacity" Value=".7" /> </Trigger> </Style.Triggers> </Style> ... <igDP:XamDataPresenter Name="xamDataPresenter1" BindToSampleData="True"> <igDP:XamDataPresenter.FieldLayoutSettings> <igDP:FieldLayoutSettings FilterAction="None" /> </igDP:XamDataPresenter.FieldLayoutSettings> <igDP:XamDataPresenter.FieldSettings> <igDP:FieldSettings AllowRecordFiltering="True" /> </igDP:XamDataPresenter.FieldSettings> </igDP:XamDataPresenter>
Visual Basic の場合:
Imports Infragistics.Windows.DataPresenter ... Me.xamDataPresenter1.FieldLayoutSettings.FilterAction = RecordFilterAction.None Me.xamDataPresenter1.FieldSettings.AllowRecordFiltering = True
C# の場合:
using Infragistics.Windows.DataPresenter; ... this.xamDataPresenter1.FieldLayoutSettings.FilterAction = RecordFilterAction.None; this.xamDataPresenter1.FieldSettings.AllowRecordFiltering = true;