我要求保持所有列宽度匹配多个数据网格。正如我所定义的那样,当用户输入更大的数字时,列可以根据需要增长。当这种情况发生时,兄弟表列就会失去对齐,它们的宽度需要与输入数据的列保持同步。由于列的数量,我不能真正使用固定宽度,尽管这可能是唯一的方法。
例如,这是数据网格的精简定义。所有表都以相同的方式定义,当然还有更多列。任何想法都会得到满足。
<DataGrid Grid.Row="0" Style="{StaticResource BaseAFGrid}" HorizontalAlignment="Stretch" x:Name="gridBilanActif"
VerticalAlignment="Top" Margin="5,5,0,0">
<DataGrid.Columns>
<DataGridTemplateColumn IsReadOnly="False" Header="Nom" Width="260" CanUserSort="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<TextBox Margin="{Binding Level, Converter={StaticResource LevelConverter}}"
x:Name="txtTitreA" Style="{StaticResource AFTextbox}"
IsReadOnly="{Binding TitreEstNonmodifiable}"
Text="{Binding Nom, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
Width="200" HorizontalAlignment="Left"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn IsReadOnly="False" Header="1" Width="Auto" MinWidth="55" CanUserSort="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<TextBox x:Name=" colPeriode1A" Style="{StaticResource MilierDoubleTextBoxAF}"
CValidation:TextboxValidator.IsFloating="True" CValidation:TextboxValidator.MaxDecimal="2"
IsReadOnly="{Binding HasChildren}" TextChanged="colPeriode1A_TextChanged"
Text="{Binding P1_Bilan, Mode=TwoWay, UpdateSourceTrigger=LostFocus,
Converter={StaticResource CurrencyConverter}}" HorizontalAlignment="Right"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn IsReadOnly="False" Header="2" Width="Auto" MinWidth="55" CanUserSort="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate >
<TextBox x:Name=" colPeriode2A" Style="{StaticResource MilierDoubleTextBoxAF}"
CValidation:TextboxValidator.IsFloating="True" CValidation:TextboxValidator.MaxDecimal="2"
IsReadOnly="{Binding HasChildren}"
Text="{Binding P2_Bilan, Mode=TwoWay, UpdateSourceTrigger=LostFocus,
Converter={StaticResource CurrencyConverter}}" HorizontalAlignment="Right"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>