我有一个textBox(txtSearch)放在DataGridColumnHeadertemplate中,如下所示:
<UserControl.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="{TemplateBinding Content}" HorizontalAlignment="Center" />
<Grid Grid.Row="1" >
<TextBox x:Name="txtSearch" Tag="{Binding DataGridTextColumn.Name, ElementName=grd}" Text="" HorizontalAlignment="Stretch" BorderThickness="1" TextChanged="TextBox_TextChanged" />
</Grid>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
并将其用于这样的数据网格:
<DataGrid x:Name="grd" ItemsSource="{Binding Source={StaticResource theSource}}" AutoGenerateColumns="False" ColumnHeaderStyle="{DynamicResource DataGridColumnHeaderStyle1}">
<DataGrid.Columns >
<DataGridTextColumn Header="نام" Binding="{Binding Title}" x:Name="Title" ></DataGridTextColumn>
<DataGridTextColumn Header="ID" Binding="{Binding ParentID}" x:Name="ParentID"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
现在我需要将txtSearch Tag属性绑定到DataGridTextColumn.Name.how我可以这样做吗?
答案 0 :(得分:1)
您可以尝试将RelativeSource与Mode = FindAncestor(http://msdn.microsoft.com/ru-ru/library/dd553635(v=vs.95).aspx)
一起使用