XamDataGrid 内でフィルター設定を「begins with」ではなく「contains」に変更しようとしています。機能を実装できるプロパティはありますか?
私は多くの調査の結果、それを見つけることができませんでした.誰かが私が見逃したものがあるかどうかを見つけるのを手伝ってくれたら素晴らしいでしょう.
XamDataGrid 内でフィルター設定を「begins with」ではなく「contains」に変更しようとしています。機能を実装できるプロパティはありますか?
私は多くの調査の結果、それを見つけることができませんでした.誰かが私が見逃したものがあるかどうかを見つけるのを手伝ってくれたら素晴らしいでしょう.
ViewModel でフィルター処理する場合は、次の例を使用して使用する方法を示しますICollectionView
。
public class TestViewModel : INotifyPropertyChanged
{
private string _filterText;
private List<string> _itemsList;
public TestViewModel()
{
_itemsList = new List<string>() { "Test 1", "Test 2", "Test 3" };
this.Items = CollectionViewSource.GetDefaultView(_itemsList);
this.Items.Filter = FilterItems;
}
public ICollectionView Items { get; private set; }
public string FilterText
{
get { return _filterText; }
set
{
_filterText = value;
Items.Refresh();
this.RaisePropertyChanged("FilterText");
}
}
private bool FilterItems(object item)
{
return this.FilterText == null || item.ToString().Contains(this.FilterText);
}
#region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propName));
}
#endregion
}
次に、View で、DataBindTextBox
を FilterText プロパティに、ItemsSource
または Grid を Items プロパティにバインドするだけです (ここでは ListBox で示されています)。
<TextBox x:Name="ItemsFilter" Text="{Binding FilterText, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Width="100" Margin="10" VerticalAlignment="Center"/>
<ListBox x:Name="ItemsList" ItemsSource="{Binding Items}" Grid.Row="1" Width="200" Margin="10" HorizontalAlignment="Left"/>
必要な物件を手に入れました、みんなありがとう。
こんなふうになります、
<igDP:Field Name="Description">
<igDP:Field.Settings>
<igDP:FieldSettings
AllowGroupBy="True"
AllowEdit="True"
AllowRecordFiltering="True"
FilterOperatorDefaultValue="Contains"/>
</igDP:Field.Settings>
</igDP:Field>