我想向Datagrid的包含文本框(用於搜索)的標題行添加額外的行。
此行應直接顯示在原始標題下方,並且看起來像常規項目標題。Datagrid自定義標題
這是我到目前爲止的代碼:
<Window.Resources>
<Style x:Key="DataGridColumnHeaderStyle1" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid VerticalAlignment="Center" HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="" HorizontalAlignment="Stretch"/>
<Grid Grid.Row="1">
<TextBox Text="" HorizontalAlignment="Stretch" BorderThickness="1" />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<DataGrid x:Name="dataGrid" Height="157" Width="600" Margin="8,8,24,0"
VerticalAlignment="Top"
AutoGenerateColumns="False"
ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}"
ItemsSource="{Binding}" CanUserAddRows="False"
>
<DataGrid.Columns>
<DataGridTextColumn Header="Header1" Binding="{Binding Id}" Width="100" />
<DataGridTextColumn Header="Header2" Binding="{Binding Name}" Width="100"/>
<DataGridTextColumn Header="Header3" Binding="{Binding Phone}" Width="100"/>
<DataGridTextColumn Header="Header4" Binding="{Binding Address}" Width="100"/>
<DataGridTextColumn Header="Header5" Binding="{Binding Description}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
與我的ContentTemplate,它並沒有得到「頭題」,即在規定的問題。
我需要的文本塊,但你是對的。你能解釋一下TemplateBinding Content如何綁定Header屬性? – 2011-05-17 18:49:50
感謝您的偉大答案,但是請問我如何將這些文本框綁定到視圖模型並使用它們過濾每一列? – 2012-04-15 09:50:47