SHOEISHA iD

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

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

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

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

(1) AutoCompleteBoxコントロール


  • X ポスト
  • このエントリーをはてなブックマークに追加

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. ドロップダウン部分の最大高さを設定する

修正履歴

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Silverlight/WPFで使える逆引きTips集連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

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

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5443 2010/09/25 23:19

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング