2
コントロールを修正不可能にすると、一貫したスタイルを維持するためにTextBox
として表示されます。問題は、ComboBox
は任意のタイプのデータを持つことができるため、のプロパティをバインドすることは、SelectedItem
を使用するのと同じくらい単純ではありません。WPF - スタイル設定ツール内から親コントロールにアクセスするControlTemplate
<Style TargetType="{x:Type ComboBox}">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBox Text="{Binding RelativeSource={RelativeSource AncestorType={x:Type ComboBox}}, Path=????, Converter={StaticResource ResourceKey=ComboToTextConverter}, UpdateSourceTrigger=PropertyChanged}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
私が持っているアイデアはConverter
を使用して、それがConverter
コードで処理できるように、全体ComboBox
を送信することです。これを行うためにとにかくありますか?
その他のご提案は大歓迎です! 、それをあなたがComboBox
にtrueにIsReadOnly
プロパティを設定すると
<Style TargetType="ComboBox" x:Key="cStyle">
<Style.Triggers>
<Trigger Property="IsReadOnly" Value="True">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBox">
<TextBox Text="{Binding RelativeSource=
{RelativeSource TemplatedParent},
Path=SelectedValue}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
、今HERESにあなたのComboBox
<ComboBox Name="cbox" ItemsSource="{Binding}"
Style="{StaticResource cStyle}"
SelectedValuePath="SomeText"
DisplayMemberPath="SomeText" />
:
この問題を解決しましたか? – DRapp