在WPF/Silverlight中将组合框显示为文本块
我想将组合框显示为文本框(无边框、背景、切换按钮等)-仅显示当前选定的项目文本。 我确实喜欢这样,但我不明白如何链接TextBlock,以便它在组合框中显示当前选定的项在WPF/Silverlight中将组合框显示为文本块,wpf,combobox,controltemplate,Wpf,Combobox,Controltemplate,我想将组合框显示为文本框(无边框、背景、切换按钮等)-仅显示当前选定的项目文本。 我确实喜欢这样,但我不明白如何链接TextBlock,以便它在组合框中显示当前选定的项 <ComboBox ItemsSource="{Binding Path=...}" SelectedValue="{Binding Path=...}" DisplayMemberPath="Name" SelectedValuePath="Id"> <ComboBox.Template>
<ComboBox ItemsSource="{Binding Path=...}" SelectedValue="{Binding Path=...}" DisplayMemberPath="Name" SelectedValuePath="Id">
<ComboBox.Template>
<ControlTemplate>
<TextBlock Text="{Binding ?}"></TextBlock>
</ControlTemplate>
</ComboBox.Template>
</ComboBox>
您应该在
ControlTemplate
中指定TargetType
,并绑定到SelectionBoxItem
使用以下命令:
<ComboBox>
<ComboBox.Template>
<ControlTemplate TargetType="{x:Type ComboBox}">
<TextBlock Text="{TemplateBinding SelectionBoxItem}" />
</ControlTemplate>
</ComboBox.Template>
<ComboBoxItem Content="Item1" IsSelected="True" />
<ComboBoxItem Content="sdff" />
</ComboBox>
此解决方案将所选项目正确显示为文本块,但您不能选择新项目。
<ComboBox ItemsSource="{Binding Path=...}" SelectedValue="{Binding Path=...}" DisplayMemberPath="Name" SelectedValuePath="Id">
<ComboBox.Template>
<ControlTemplate>
<TextBlock Text="{Binding SelectedItem.MyText,RelativeSource={RelativeSource Mode=TemplatedParent}}"></TextBlock>
</ControlTemplate>
</ComboBox.Template>