1

セパレータコントロールを含むWPF編集可能なComboBoxのオートコンプリートは、System.Windows.Controls.Separatorを表示します。

このxamlで:

<ComboBox IsEditable="true">
   <ComboBoxItem Content="aaaaa"/>
   <ComboBoxItem Content="bbbbb"/>
   <ComboBoxItem Content="ccccc"/>
</ComboBox>

ユーザーはaからcで入力を開始して、残りの文字をオートコンプリートできます。aはaaaaになり、bはbbbbbになります。

ただし、問題は、セパレータを追加して、それらの一部をオートコンプリートから除外する場合です。私はこれを試しました:

<ComboBox IsEditable="true">
   <ComboBoxItem Content="aaaaa"/>
   <ComboBoxItem Content="bbbbb"/>
   <Separator IsEnabled="false"/>
   <ComboBoxItem Content="ccccc" IsEnabled="false"/>
</ComboBox>

cを押すと、コンボボックスにはまだcccccが選択肢として表示されます。また、Sを押すと、奇妙なことに、コンボボックスにSystem.Windows.Controls.Separatorが選択肢として表示されます(!)

オートコンプリートは、他の2つ(Separatorとccccc)がIsEnabled = "false"に設定されているため、aとbの入力のみをサポートすることを期待していました。

これに対する解決策はありますか?私にお知らせください。

4

2 に答える 2

1

アイテムコレクションを使用してヘッダーのように見えるものを導入することは、おそらくそれほど良い考えではありません。これを含むあらゆる種類の問題が発生します。この機能のプロパティを提供するTemplate、またはカスタムコントロールのカスタムを作成する方がよい場合があります。ComboBox

于 2011-10-27T22:21:12.240 に答える
0

将来の訪問者のための別の答え:私は今日この問題に遭遇し、受け入れられた答えが提案するようにカスタムテンプレートを作成するすべての作業をやりたくありません。

私の場合、リストは非常に限られているため、のTextSearch.Text添付プロパティを、Separator入力される可能性が低い文字に設定しました。ここでは著作権記号を使用しています。

<ComboBox IsEditable="true">
 <ComboBoxItem Content="aaaaa"/>
 <ComboBoxItem Content="bbbbb"/>
 <Separator IsEnabled="false" TextSearch.Text="&#xA9;"/>
 <ComboBoxItem Content="ccccc" IsEnabled="false"/>
</ComboBox>
于 2015-05-08T19:38:40.243 に答える