6. フィルター処理が働き始める文字数を設定する
通常、テキストボックスに1文字入力した時点でオートコンプリートのフィルターが働き始めます。 フィルター処理が働き始める文字数を変更する場合はMinimumPrefixLengthプロパティ
を設定します(既定値は1となっています)。
下記はテキストボックスに3文字入力した時点でフィルターが働き始める例です。
![](http://cz-cdn.shoeisha.jp/static/images/article/5443/5443_07.gif)
<sdk:AutoCompleteBox Height="28" Name="AutoCompleteBox1" Width="221" MinimumPrefixLength="3" />
'フィルターが働き始める文字数を設定する AutoCompleteBox1.MinimumPrefixLength = 3
// フィルターが働き始める文字数を設定する AutoCompleteBox1.MinimumPrefixLength = 3;
フィルター処理が働き始める文字数は MinimumPrefixLength で設定する。
7. フィルター処理方法を設定する
FileterModeプロパティ
を使用すると、ドロップダウンに表示される項目のフィルター方法を設定することができます。FilterModeプロパティ(下記参照)にはAutoCompleteFilterMode列挙体を指定します。既定値はStartsWithとなっており、入力された文字で始まる候補を探します。
値 | 説明 |
None | フィルターを使用しない。 |
StartsWith | 指定された文字列で始まるものを取得する。大文字と小文字は区別しない。 |
StartsWithCaseSensitive | 指定された文字列で始まるものを取得する。大文字と小文字を区別する。 |
StartsWithOrdinal | 指定された文字列で始まるものを取得する。大文字と小文字を区別しない序数フィルター。 |
StartsWithOrdinalCaseSensitive | 指定された文字列で始まるものを取得する。大文字と小文字を区別する序数フィルター。 |
Contains | 指定された文字列が含まれるものを取得する。大文字と小文字は区別しない。 |
ContainsCaseSensitive | 指定された文字列が含まれるものを取得する。大文字と小文字を区別する。 |
ContainsOrdinal | 指定された文字列が含まれるものを取得する。大文字と小文字を区別しない序数フィルター。 |
ContainsOrdinalCaseSensitive | 指定された文字列が含まれるものを取得する。大文字と小文字を区別する序数フィルター。 |
Equals | 指定された文字列と一致するものを取得する。大文字と小文字は区別しない。 |
EqualsCaseSensitive | 指定された文字列と一致するものを取得する。大文字と小文字を区別する。 |
EqualsOrdinal | 指定された文字列と一致するものを取得する。大文字と小文字を区別する序数フィルター。 |
EqualsOrdinalCaseSensitive | 指定された文字列と一致するものを取得する。大文字と小文字を区別する序数フィルター。 |
Custom | カスタムフィルター。独自のフィルターを指定できる。 |
下記はFilterMode プロパティにContainsを設定する例です。テキストボックスに「ra」と入力すると、「ra」という文字列が含まれるフルーツが表示されます。
![](http://cz-cdn.shoeisha.jp/static/images/article/5443/5443_06.gif)
<sdk:AutoCompleteBox Height="28" Name="fruitsACB" Width="221" FilterMode="Contains"/>
Public Sub New() InitializeComponent() 'データソースの設定 fruitsACB.ItemsSource = GetItemSource() 'FlterModeにContainsを設定する fruitsACB.FilterMode = AutoCompleteFilterMode.Contains End Sub 'データソースを取得する Private Function GetItemSource() As List(Of String) Dim fruits As New List(Of String) fruits.Add("Orange") fruits.Add("Grapes") fruits.Add("Pineapple") fruits.Add("Watermelon") fruits.Add("Strawberry") fruits.Add("Lemon") fruits.Add("Mandarin") fruits.Add("Lime") fruits.Add("Peach") fruits.Add("Loquat") Return fruits End Function
public Page5() { InitializeComponent(); // データソースの設定 fruitsACB.ItemsSource = GetItemSource(); // FlterModeにContainsを設定する fruitsACB.FilterMode = AutoCompleteFilterMode.Contains; } // データソースを取得する private List GetItemSource() { List fruits = new List(); fruits.Add("Orange"); fruits.Add("Grapes"); fruits.Add("Pineapple"); fruits.Add("Watermelon"); fruits.Add("Strawberry"); fruits.Add("Lemon"); fruits.Add("Mandarin"); fruits.Add("Lime"); fruits.Add("Peach"); fruits.Add("Loquat"); return fruits; }
フィルター処理方法はFilterModeプロパティで設定する。