WPFアプリで標準のオートコンプリートボックスコントロールを使用しています。ユーザーがクエリを入力すると、オートコンプリートリストが作成され、入力時にフィルター処理されます。ドロップダウンリスト内で、ユーザーが入力したテキストに一致するすべてのリストボックスアイテム内のテキストを強調表示したいと思います。たとえば、apと入力し、ドロップダウンにdapとappleがある場合、各単語のapは太字になり、残りのテキストは太字になりません。
正しいテキストを実際に太字に変更するためのすべてのコードがありますが、正しいタイミングで呼び出されることはありません。太字を実行するコードを呼び出すための正しいイベントが見つかりません。太字にするために、VisualTreeHelperをトラバースして各ListBoxItem内の各TextBlockを見つけましたが、このトラバースを開始するための正しいイベントが見つかりません。リスト全体が表示される前、またはリストがフィルタリングされる前に、太字のテキストが表示されないように、常に呼び出すことになります。
リストボックスのselectionchangedイベントからトラバースを呼び出すと、テキストが正しく太字になるため、コードが機能することはわかっていますが、太字のテキストを表示するには、ユーザーがエントリを強調表示する必要があるため、これは私が探しているインタラクションではありません。
リストがフィルタリングされて表示された後、このトラバースを処理して呼び出すことができるイベントは何ですか?ユーザーが検索ボックスに別の文字を入力するたびに、リストが再フィルタリングされることに注意してください。
これは信じられないほど私を苛立たせているので、助けてくれてありがとう!