Silverlight Column Headerは、ヘッダースタイルテンプレートの適用に陥ります
-
26-09-2019 - |
質問
私はシルバーライトを持っています DataGrid
2つの列付き。これらの2つの列ヘッダーのヘッダーは、テキストボックスと列ヘッダーのタイトルまたは名前で表示する必要があります。これにより、テキストボックスを後でフィルタリングするために使用できます。
そのため、次のコードを使用して、スタイルを使用してテキストボックスを表示しました。
<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;
問題は、テキストボックスが表示されますが、列ヘッダーのタイトルまたは名前が消えますか?
テキストボックスとともに列ヘッダーを表示するにはどうすればよいですか?
解決
あなたが言ったように、私はテンプレートのスタックパネルにテキストブロックを挿入し、問題を解決しました
コードは以下にあります
<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