Last active
July 25, 2023 21:42
-
-
Save sdenchev/8691414 to your computer and use it in GitHub Desktop.
WPF filtering with CollectionView
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<Window x:Class="Filtering.MainWindow" | |
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" | |
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" | |
xmlns:l="clr-namespace:Filtering" | |
Title="MainWindow" Height="350" Width="525"> | |
<Window.Resources> | |
<l:MainWindowViewModel x:Key="ViewModel"/> | |
</Window.Resources> | |
<Grid DataContext="{StaticResource ViewModel}"> | |
<ListView ItemsSource="{Binding Collection}"/> | |
<TextBox Width="100" HorizontalAlignment="Right" VerticalAlignment="Top" Text="{Binding Path=Filter, UpdateSourceTrigger=PropertyChanged}"/> | |
</Grid> | |
</Window> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.ObjectModel; | |
using System.ComponentModel; | |
using System.Windows.Data; | |
namespace Filtering | |
{ | |
public class MainWindowViewModel : INotifyPropertyChanged | |
{ | |
private string filter; | |
public string Filter | |
{ | |
get { return filter; } | |
set | |
{ | |
filter = value; | |
CollectionViewSource.GetDefaultView(Collection).Refresh(); | |
RaisePropertyChanged("Filter"); | |
} | |
} | |
public ObservableCollection<string> Collection { get; set; } | |
public MainWindowViewModel() | |
{ | |
Collection = new ObservableCollection<string>( | |
System.IO.File.ReadAllLines("namae.txt")); | |
CollectionViewSource.GetDefaultView(Collection).Filter = new Predicate<object>(Contains); | |
} | |
private bool Contains(object o) | |
{ | |
if (Filter != null) | |
return ((string)o).Contains(Filter); | |
return true; | |
} | |
public event PropertyChangedEventHandler PropertyChanged; | |
private void RaisePropertyChanged(string name) | |
{ | |
if (PropertyChanged != null) | |
PropertyChanged(this, new PropertyChangedEventArgs(name)); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Ai | |
Aiko | |
Aimi | |
Aina | |
Airi | |
Akane | |
Akemi | |
Aki | |
Akiko | |
Akira | |
Ami | |
Aoi | |
Asuka | |
Atsuko | |
Aya | |
Ayaka | |
Ayako | |
Ayame | |
Ayane | |
Ayano | |
Chika | |
Chikako | |
Chinatsu | |
Chiyo | |
Chiyoko | |
Cho | |
Chou | |
Chouko | |
Emi | |
Etsuko | |
Hana | |
Hanako | |
Haru | |
Haruka | |
Haruko | |
Haruna | |
Hikari | |
Hikaru | |
Hina | |
Hinata | |
Hiroko | |
Hitomi | |
Honoka | |
Hoshi | |
Hoshiko | |
Hotaru | |
Izumi | |
Junko | |
Kaede | |
Kanon | |
Kaori | |
Kaoru | |
Kasumi | |
Kazue | |
Kazuko | |
Keiko | |
Kiku | |
Kimiko | |
Kiyoko | |
Kohaku | |
Kokoro | |
Kotone | |
Kumiko | |
Kyo | |
Kyou | |
Mai | |
Makoto | |
Mami | |
Manami | |
Mao | |
Mariko | |
Masami | |
Masuyo | |
Mayu | |
Megumi | |
Mei | |
Michi | |
Michiko | |
Midori | |
Mika | |
Miki | |
Miku | |
Minako | |
Mio | |
Misaki | |
Mitsuko | |
Miu | |
Miyako | |
Miyu | |
Mizuki | |
Moe | |
Momoka | |
Momoko | |
Moriko | |
Nana | |
Nanami | |
Naoko | |
Naomi | |
Natsuki | |
Natsuko | |
Natsumi | |
Noa | |
Noriko | |
Ran | |
Rei | |
Ren | |
Riko | |
Rin | |
Rina | |
Rio | |
Sachiko | |
Saki | |
Sakura | |
Sakurako | |
Satomi | |
Sayuri | |
Setsuko | |
Shinju | |
Shinobu | |
Shiori | |
Shizuka | |
Shun | |
Sora | |
Sumiko | |
Suzu | |
Suzume | |
Takako | |
Takara | |
Tamiko | |
Tomiko | |
Tomoko | |
Tomomi | |
Tsubaki | |
Tsubame | |
Tsubasa | |
Tsukiko | |
Ume | |
Umeko | |
Wakana | |
Yasu | |
Yoko | |
Yoshi | |
Yoshiko | |
Youko | |
Yua | |
Yui | |
Yuina | |
Yuki | |
Yukiko | |
Yuko | |
Yumi | |
Yumiko | |
Yuri | |
Yuu | |
Yuuka | |
Yuuki | |
Yuuko | |
Yuuna | |
Yuzuki |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment