2012-07-15 53 views
0

如何在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的第一列的可能是如何?

回答

1

根据this answer

var res = FindVisualChildren<TextBox>(grd).Where(t => t.Name == "txtSearch"); 

这里哟可以找到所有 “txtSearch” 头文本框。

我敢肯定,它可以得到更直接的方式,但直到那时......