2011-10-27 10 views
1

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

は:

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

ユーザーがautoに文字の残りの部分を完了し、Cへと入力して開始することができます。 aはaaaaaになり、bはbbbbbになります。

ただし、問題は、区切り文字を追加して、自動区切りの対象から除外したい場合です。私はCを押すと、コンボボックスがまだ選択肢としてCCCCCを示し

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

: 私はこの1つを試してみました。 私はSを打ったときにも、変なふうにコンボボックスが選択肢としてSystem.Windows.Controls.Separatorを示して(!)

私の期待は、オート完了しただけで、他の2つ(セパレータとCCCCC)以来、aとbを入力しているサポートIsEnabled = "false"に設定します。

解決方法はありますか? お知らせください。

答えて

1

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

+0

申し訳ありませんが、ミスをしたことの1つは、「ヘッダー」として書いたことですが、xamlには「コンテンツ」を意味していました。それはあなたの答えに影響を及ぼしますか?いずれにしても、あなたの答えは大変ありがとうございます。 – Aki24x

+1

@ Aki24x:いいえ、そうではありません。私はあなたのコードを試したときに気づきました。 –

+0

私は参照してください。ですから、基本的には、SeparatorなどのComboBoxに属さないものは含めないでください。カスタムテンプレートの作成について考えてみましょう。どうもありがとうございました! – Aki24x

0

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

私の場合、リストは非常に限定されていますので、Separatorの添付プロパティはの文字を入力することはほとんどありません。ここで私は著作権シンボルを使用します:

<ComboBox IsEditable="true"> 
<ComboBoxItem Content="aaaaa"/> 
<ComboBoxItem Content="bbbbb"/> 
<Separator IsEnabled="false" TextSearch.Text="&#xA9;"/> 
<ComboBoxItem Content="ccccc" IsEnabled="false"/> 
</ComboBox> 
関連する問題