Silverlight Coluna Cabeçalho desaparece na aplicação do modelo de estilo de cabeçalho
-
26-09-2019 - |
Pergunta
Eu tenho um Silverlight DataGrid
com duas colunas. Os cabeçalhos dessas duas colunas devem ser mostradas com uma caixa de texto e título ou nome do cabeçalho da coluna para que a caixa de texto possa ser usada para filtrar posteriormente.
Então, eu usei o código a seguir para exibir a caixa de texto usando um estilo:
<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>
E eu apliquei o estilo aos cabeçalhos da coluna como abaixo:
((DataGridTextColumn)column[0]).HeaderStyle = mytemplate;
((DataGridTextColumn)column[1]).HeaderStyle = mytemplate;
O problema é que agora a caixa de texto é visível, mas o título ou o nome do cabeçalho da coluna desaparece?
Como faço para mostrar o cabeçalho da minha coluna junto com a caixa de texto?
Solução
Como você disse, acabei de inserir o TextBlock no Stackpanel do modelo e resolve o problema
O código está abaixo
<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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow