SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Silverlight/WPFで使える逆引きTips集

Silverlight/WPFで使える逆引きTips集
――オートコンプリート機能編

(1) AutoCompleteBoxコントロール


6. フィルター処理が働き始める文字数を設定する

 通常、テキストボックスに1文字入力した時点でオートコンプリートのフィルターが働き始めます。 フィルター処理が働き始める文字数を変更する場合はMinimumPrefixLengthプロパティを設定します(既定値は1となっています)。

 下記はテキストボックスに3文字入力した時点でフィルターが働き始める例です。

フィルダー処理が開始する文字数を指定する
XAMLの例
<sdk:AutoCompleteBox Height="28" Name="AutoCompleteBox1" Width="221" MinimumPrefixLength="3" />
VBの例
'フィルターが働き始める文字数を設定する
AutoCompleteBox1.MinimumPrefixLength = 3
C#の例
// フィルターが働き始める文字数を設定する
AutoCompleteBox1.MinimumPrefixLength = 3;
ポイント

 フィルター処理が働き始める文字数は MinimumPrefixLength で設定する。

7. フィルター処理方法を設定する

 FileterModeプロパティを使用すると、ドロップダウンに表示される項目のフィルター方法を設定することができます。FilterModeプロパティ(下記参照)にはAutoCompleteFilterMode列挙体を指定します。既定値はStartsWithとなっており、入力された文字で始まる候補を探します。

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

 下記はFilterMode プロパティにContainsを設定する例です。テキストボックスに「ra」と入力すると、「ra」という文字列が含まれるフルーツが表示されます。

「ra」を含む文字列を表示する
XAMLの例
<sdk:AutoCompleteBox Height="28" Name="fruitsACB" Width="221" FilterMode="Contains"/>
VBの例
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
C#の例
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プロパティで設定する。

次のページ
8. ドロップダウン部分の最大高さを設定する

修正履歴

この記事は参考になりましたか?

Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5443 2010/09/25 23:19

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー