在WPF / Silverlight中将ComboBox呈现为TextBlock

时间:2012-12-24 17:56:18

标签: wpf combobox controltemplate

我想将ComboBox显示为TextBox(没有边框,背景,切换按钮等) - 仅显示当前选定的项目文本。 我喜欢这样,但我无法理解如何链接TextBlock,以便它显示ComboBox中当前选定的项目。

<ComboBox ItemsSource="{Binding Path=...}" SelectedValue="{Binding Path=...}" DisplayMemberPath="Name" SelectedValuePath="Id">
    <ComboBox.Template>
        <ControlTemplate>
            <TextBlock Text="{Binding ?}"></TextBlock>
        </ControlTemplate>
    </ComboBox.Template>
</ComboBox>

2 个答案:

答案 0 :(得分:4)

<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>

答案 1 :(得分:0)

您应在TargetType中指定ControlTemplate并绑定到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>