我有使用DataGrid的问题。从最宽的可见单元加载列。但是,如果用户向下滚动,并且出现更宽的单元格,则会调整列的大小。
用户不喜欢这个,然后我搜索取消此行为。一个简单的解决方案是使用最宽的单元格宽度设置列宽。但是我很难意识到这一点。
如果您有其他解决方案来解决我的问题,也会很好。
<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。
答案 0 :(得分:0)
如果在XAML中将列宽设置为*,该怎么办:
Width="*"
并创建一个允许文本换行的celltemplate(可能使用texblock) 这样,列宽保持不变 干杯,G