У меня проблема с использованием DataGrid. Столбцы загружаются из самой широкой видимой ячейки. Но если пользователь прокручивает вниз и появляется более широкая ячейка, то размер столбца изменяется.WPF DataGrid set Ширина столбца от самой высокой ячейки
Пользователю это не нравится, затем я ищу, чтобы отменить это поведение. Простое решение - установить ширину столбца с самой широкой шириной ячейки. Но мне трудно понять это.
Если у вас есть другое решение проблемы с моей проблемой, также будет хорошо.
<Window x:Class="Win"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
SizeToContent="Width">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<GroupBox Grid.Row="0" Header="Seach">
<TextBox TextChanged="TextBoxFilter_TextChanged"/>
</GroupBox>
<DataGrid Grid.Row="1" Name="DataGridOperations" AutoGenerateColumns="False" ColumnWidth="auto" CanUserAddRows="False" CanUserDeleteRows="False" AlternatingRowBackground="AntiqueWhite">
<DataGrid.Columns>
<DataGridTextColumn Header="Date" IsReadOnly="True" Binding="{Binding Date,Mode=OneTime, StringFormat={}{0:dd/MM/yyyy hh:mm:ss}}"/>
<DataGridTextColumn Header="Type" IsReadOnly="True" Binding="{Binding Type,Mode=OneTime}"/>
<DataGridTextColumn Header="Etat" IsReadOnly="True" Binding="{Binding Status,Mode=OneTime}"/>
<DataGridTextColumn Header="Name" IsReadOnly="True" Binding="{Binding Name,Mode=OneTime}"/>
<DataGridTextColumn Header="Code" Binding="{Binding CodeProduct,Mode=OneTime}"/>
<DataGridTextColumn Header="Version" IsReadOnly="True" Binding="{Binding VersionIndus,Mode=OneTime}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
Игнорировать модуль фильтра. Он отключен при загрузке. Я использую C# 4.0 .NET.
С Ширина = "*" и двойной экран, Окно распространяется по всей поверхности. Я не хочу обертывать текст. В настоящее время после загрузки DataGrid я устанавливаю ширину столбца с помощью AcualWidth, но некоторые значения обрезаются. – Orwel