Я настраиваю DataGrid, чтобы пользователь мог вводить информацию непосредственно в заголовок через TextBox.
Проблема, с которой я сталкиваюсь, заключается в том, что заголовки строк не меняются, чтобы соответствовать размеру содержимого при изменении текста:
Перед тем:
После того, как:
Как видите, заголовок не уменьшается в размере, чтобы соответствовать текстовым полям, как только размер текстового поля был уменьшен для соответствия новому тексту.
В соответствии с Минимальным, полным и проверяемым примером Требования:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:l="clr-namespace:MCVE"
xmlns:lib="clr-namespace:System;assembly=mscorlib"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
x:Class="MCVE.MainWindow"
mc:Ignorable="d" Title="MainWindow" Height="450" Width="800">
<Window.Resources>
<x:Array x:Key="Source" Type="{x:Type lib:String}">
<lib:String>Foo</lib:String>
<lib:String>Bar</lib:String>
<lib:String>Baz</lib:String>
</x:Array>
</Window.Resources>
<DataGrid
AutoGenerateColumns="False"
ItemsSource="{StaticResource Source}"
RowHeight="50">
<DataGrid.RowHeaderStyle>
<Style TargetType="{x:Type DataGridRowHeader}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<TextBox FontSize="36" HorizontalAlignment="Left" Text="This Is A Test" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowHeaderStyle>
</DataGrid>
</Window>
Введите некоторые вещи в любой из заголовков строк. Затем очистите его для воспроизведения.
Так, что я могу сделать, чтобы обеспечить ширину заголовка строки и убедиться, что она поддерживает наименьшую возможную ширину (без посягательства на фактическое содержимое заголовка строки)?