Silverlight колонны заголовка нанесение на применении шаблона стиля заголовка
-
26-09-2019 - |
Вопрос
У меня есть серебристый свет DataGrid
с двумя колоннами. Заголовки этих двух столбцов заголовка должны быть показаны с текстовым полем и заголовка заголовка столбца или именем, чтобы текстовое поле можно было использовать для фильтрации позже.
Итак, я использовал следующий код для отображения текстового поля с использованием стиля:
<Style x:Name="mytemplate"
x:Key="mytemplate"
xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate x:Name="ColHeaderTemplategrid">
<StackPanel>
<TextBox x:Name="txtfilterBox" KeyDown="txtfilterBox_KeyDown" Width="40"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
И я применил стиль в заголовки столбцов, как показано ниже:
((DataGridTextColumn)column[0]).HeaderStyle = mytemplate;
((DataGridTextColumn)column[1]).HeaderStyle = mytemplate;
То есть, теперь текстовое поле видно, но заголовок заголовка столбца или имя исчезает?
Как я могу показать свой заголовок столбца вместе с текстовым ящиком?
Решение
Как вы сказали, я просто вставил TextBlock в StackPanel шаблона и решает проблему
код ниже
<Style x:Name="mytemplate" x:Key="mytemplate" xmlns:dataprimitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Data"
TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate" >
<Setter.Value>
<DataTemplate x:Name="ColHeaderTemplategrid">
<StackPanel>
<TextBlock Text="{Binding}" ></TextBlock>
<TextBox x:Name="txtfilterBox" KeyDown="txtfilterBox_KeyDown" Width="40"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
Не связан с StackOverflow