【问题标题】:How to Access control inside datagrid ColumnHeaderStyle?如何访问数据网格 ColumnHeaderStyle 内的控制?
【发布时间】:2012-07-15 05:05:44
【问题描述】:

如何访问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>

我想访问例如 datagrid 第一列的 textSearch。这可能吗?如何?

【问题讨论】:

    标签: wpf styles wpfdatagrid


    【解决方案1】:

    根据this answer

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

    在这里你可以找到所有“txtSearch”标题文本框。

    我相信它可以得到更直接的方式,但在那之前..

    【讨论】:

      猜你喜欢
      • 2014-08-13
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 2013-04-14
      • 1970-01-01
      • 2011-11-16
      • 2011-03-07
      相关资源
      最近更新 更多