如何在datagrid ColumnHeaderStyle中访问控件?
问题描述:
如何在datagrid中访问控件ColumnHeaderStyle?如何在datagrid ColumnHeaderStyle中访问控件?
此示例中:
<Style x:Key="DataGridColumnHeaderStyle1" TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridColumnHeader}">
<Grid Name="grdPeresenter" VerticalAlignment="Center" HorizontalAlignment="Stretch">
<TextBox x:Name="txtSearch" Grid.Row="1" BorderThickness="2" PreviewMouseLeftButtonUp="grid1_PreviewMouseLeftButtonUp" HorizontalAlignment="Stretch" TextChanged="TextBox_TextChanged" >
</TextBox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
和
<DataGrid x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False"
ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}" PreviewKeyDown="grd_PreviewKeyDown"
SelectedIndex="{Binding SelectedIndex}"
SelectedItem="{Binding SelectedItem}"
behavior:MouseDoubleClick.Command="{Binding MouseDoubleClickCommand}"
GridLinesVisibility="Vertical">
</DataGrid>
我想例如访问TEXTSEARCH datagrid.is的第一列的可能是如何?
答
根据this answer:
var res = FindVisualChildren<TextBox>(grd).Where(t => t.Name == "txtSearch");
这里哟可以找到所有 “txtSearch” 头文本框。
我敢肯定,它可以得到更直接的方式,但直到那时......