[WPF/Silverlight] フィルター処理方法を設定する

スポンサーリンク

FileterMode プロパティを使用すると、ドロップダウンに表示される項目のフィルター方法を設定することができます。

FilterMode プロパティ(下記参照)には AutoCompleteFilterMode 列挙体を指定します。既定値は StartsWith です。

AutoCompleteFilterMode 列挙体
メンバ名 説明
None フィルターを使用しない。
StartsWith 指定された文字列で始まるものを取得する。大文字と小文字は区別しない。
StartsWithCaseSensitive 指定された文字列で始まるものを取得する。大文字と小文字を区別する。
StartsWithOrdinal 指定された文字列で始まるものを取得する。大文字と小文字を区別しない序数フィルター。
StartsWithOrdinalCaseSensitive 指定された文字列で始まるものを取得する。大文字と小文字を区別する序数フィルター。
Contains 指定された文字列が含まれるものを取得する。大文字と小文字は区別しない。
ContainsCaseSensitive 指定された文字列が含まれるものを取得する。大文字と小文字を区別する
ContainsOrdinal 指定された文字列が含まれるものを取得する。大文字と小文字を区別しない序数フィルター。
ContainsOrdinalCaseSensitive 指定された文字列が含まれるものを取得する。大文字と小文字を区別する。序数フィルター。
Equals 指定された文字列と一致するものを取得する。大文字と小文字は区別しない。
EqualsCaseSensitive 指定された文字列と一致するものを取得する。大文字と小文字を区別する。
EqualsOrdinal 指定された文字列と一致するものを取得する。大文字と小文字を区別する序数フィルター。
EqualsOrdinalCaseSensitive 指定された文字列と一致するものを取得する。大文字と小文字を区別する。序数フィルター。
Custom カスタムフィルター。独自のフィルターを指定できる。

下記はFilterMode プロパティに Contains を設定する例です。

テキストボックスに”ra”と入力すると、”ra”という文字列が含まれるフルーツが表示されます。

FilterModeをContainsに設定したレ例

 

XAMLの例

<sdk:AutoCompleteBox Height="28" Name="fruitsACB" Width="221" IsTextCompletionEnabled="True" FilterMode="Contains" />

VBの例

Public Sub New()
    InitializeComponent()

    'データソースの設定
    fruitsACB.ItemsSource = GetItemSource()

    'FlterModeにContainsを設定する
    fruitsACB.FilterMode = AutoCompleteFilterMode.Contains
End Sub

''' <summary>
''' データソースを取得する
''' </summary>
''' <returns></returns>
''' <remarks></remarks>
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

C#の例

public Page5()
{
    InitializeComponent();

    // データソースの設定
    fruitsACB.ItemsSource = GetItemSource();

    // FlterModeにContainsを設定する
    fruitsACB.FilterMode = AutoCompleteFilterMode.Contains;
}

/// <summary>
/// データソースを取得する
/// </summary>
/// <returns></returns>
private List<string> GetItemSource()
{
    List<string> fruits = new List<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;
}
タイトルとURLをコピーしました