0

コンボボックス内に固定テキストを設定しようとしていますが、テキストを常に SelectedItem.ToString() に設定するデフォルトの動作を「上書き」することはできません。これを行う方法はありますか?

私の現在のコンボボックスは次のようになります。

<ComboBox x:Name="ddlSection"
                Text="Hello World!"
                ItemsSource="{Binding Sections}"
                SelectedItem="{Binding SelectedSection, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
</ComboBox>

このコンボボックスには、常に「Hello World!」というテキストが表示されます。どのアイテムが選択されていても表示されないようにするには、現在これを実現できる唯一の方法は、SelectedItemChanged を使用して Text プロパティを手動でリセットすることです。

4

2 に答える 2

2

のテンプレートを変更する必要がありますComboBox。コピーを作成するには、右クリックして [テンプレートの編集] > [コピーの編集... ] を選択します。

元のテンプレートにはContentPresenter、コンテンツが選択した要素にバインドされている があります。

<ContentPresenter x:Name="contentPresenter" 
    ContentTemplate="{TemplateBinding SelectionBoxItemTemplate}" 
    ContentTemplateSelector="{TemplateBinding ItemTemplateSelector}"
    Content="{TemplateBinding SelectionBoxItem}" 
    ... />

これContentPresenterを表示したいものに置き換えるか、単にContentプロパティの値を独自のバインディングまたはハードコードされた値 (例: "Hello world")に置き換えることができます。

于 2013-11-05T13:01:08.747 に答える