제네릭 DataGrid의 일부 열에 대한 사용자 지정 헤더를 만들려고합니다. 이 헤더에 필러를 적용하는 데 사용할 수있는 텍스트 상자가 포함되기를 바랍니다.DataGrid에서 사용자 지정 열 머리글 만들기 - 바인딩 문제
<Style x:Key="ColumnHeaderStyle" TargetType="dataprimitives:DataGridColumnHeader">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}"/>
<TextBox Width="Auto" Tag="{Binding Path=Tag}" LostFocus="TextBox_LostFocus" TextChanged="TextBox_TextChanged" MinWidth="50"/>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
이 나는 순간에 놀겠다는 거있어 헤더가 사용하는 스타일 :
이것은 내가 지금까지있는 것입니다.
응용 프로그램이 실행됩니다private void dataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
(...)
e.Column.Header = new { Text = e.Column.Header, Tag = e.PropertyName };
e.Column.HeaderStyle = Resources["ColumnHeaderStyle"] as Style;
(...)
}
, 열 의지의 TextBlock의 다음과 같은 포함 : 여기에 생성시 헤더에 적절한 데이터를 공급하는 코드 생성의 예로서 { Text = Description, Tag = Description }
, 나는를 기대 그러나 TextChanged
이벤트가 발생하면 null
태그가 작동하려면 바인딩의 일부인 Path=Tag
이 필요합니다.
내가 뭘 잘못하고 있니?