Wpf 基于另一个控件宽度设置文本块宽度

Wpf 基于另一个控件宽度设置文本块宽度,wpf,datagrid,expander,Wpf,Datagrid,Expander,我的任务是根据包含在中的datagrid列设置扩展器的TextBlock宽度。XAML是这样的: <DataGrid x:Name="GridData" Grid.Column="4" Height="287" ColumnWidth="Auto" CanUserResizeColumns="False"> <DataGrid.GroupStyle> <GroupStyle> <GroupStyle.ContainerStyle

我的任务是根据包含在中的datagrid列设置扩展器的TextBlock宽度。XAML是这样的:

 <DataGrid x:Name="GridData" Grid.Column="4" Height="287" ColumnWidth="Auto" CanUserResizeColumns="False">
<DataGrid.GroupStyle>
    <GroupStyle>
        <GroupStyle.ContainerStyle>
            <Style TargetType="{x:Type GroupItem}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type GroupItem}">
                            <Expander Background="Red" HorizontalAlignment="Left" HorizontalContentAlignment="Left">
                                <Expander.Header>
                                    <StackPanel Orientation="Horizontal">
                                        <TextBlock Width="{Binding ElementName=GridData.colTimeAlarm, Path=ActualWidth}" Background="Azure" Text="{Binding StringFormat=hh\\:mm\\:ss, Converter={StaticResource SumTimes}, ConverterParameter=TimeAlarm}" />
                                    </StackPanel>
                                </Expander.Header>
                                <Expander.Content>
                                    <ItemsPresenter />
                                </Expander.Content>
                            </Expander>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </GroupStyle.ContainerStyle>
    </GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.Columns>
    <DataGridTextColumn Width="Auto" MinWidth="80" Binding="{Binding Data, UpdateSourceTrigger=PropertyChanged}" Header="@_151_Data" Foreground="Black" IsReadOnly="True" x:Name="colTimeAlarm" />
</DataGrid.Columns>


在TextBlock中,我将width属性绑定为指定列的实际宽度,但它不起作用。怎么了?

ElementName=GridData.colTimeAlarm
肯定是错的。“GridData.colTimeAlarm”是两个控件名称的串联,非常奇怪。只需尝试
ElementName=colTimeAlarm
即可!它起作用了!