次の問題があります。にWPF
バインドされているリストボックスがありますObservableCollection
。ここで、ボックス内のアイテムを完全なテキスト文字列でフィルター処理したいと考えています。
で linq クエリを実行しObservableCollection
、リストをクエリの結果にバインドします。一般的には機能しますが、説明できない動作がいくつかあります。
リストのエントリの例: CMSRC_XXX_ADDR、CMDST_XXX_ADDR、TXDAT_DMA_ST_ADDR、...
機能する検索クエリ: ADDR、XXX、XX、ADD、CM
機能しない検索クエリ: CMS、CMSR、...
入力CM
すると、まだCMSRC_XXX_ADDR
エントリが表示されます。入力CMS
するCMSRC_XXX_ADDR
と、もう表示されません。
理由を知っている人はいますか?私の質問が明確であることを願っています。助けてくれてありがとう。
よろしくドミニク
string txtOrig = text;
string lower = txtOrig.ToLower();
string normalize = txtOrig.Normalize();
var bitfieldsfiltered = from bit in bitfields
let name = bit.name_
where
name.ToLower().StartsWith(lower)
|| name.StartsWith(txtOrig)
|| name.Normalize().StartsWith(normalize)
|| name.ToLower().Contains(lower)
|| name.Contains(txtOrig)
|| name.Normalize().Contains(normalize)
|| name.ToLower().EndsWith(lower)
|| name.EndsWith(txtOrig)
|| name.Normalize().EndsWith(normalize)
|| name.ToLower().Equals(lower)
|| name.Equals(txtOrig)
|| name.Normalize().Equals(normalize)
select bit;
list_box.ItemsSource = bitfields;
更新:エラーは存在しません。ラベルのデータは、リストボックスのデータではありませんでした。RecognizesAccessKey のため、アンダースコアがありませんでした。