/ / Представити ComboBox як TextBlock в WPF / Silverlight - wpf, combobox, controltemplate

Представте ComboBox як TextBlock у WPF / Silverlight - wpf, combobox, controltemplate

Я хочу показати ComboBox як TextBox (безкордон, фон, кнопка перемикання, ect.) - лише поточний вибраний текст елемента. Мені подобається це, але я не можу зрозуміти, як зв'язати TextBlock, так що він відображає поточно вибраний елемент в ComboBox.

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

Відповіді:

4 для відповіді № 1
<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>


0 для відповіді № 2

Ви повинні вказати 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>