Я хочу показати 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>