Datagrid列宽度绑定到另一个datagrid中的另一列

时间:2012-03-15 18:03:07

标签: wpf vb.net datagrid

我要求保持所有列宽度匹配多个数据网格。正如我所定义的那样,当用户输入更大的数字时,列可以根据需要增长。当这种情况发生时,兄弟表列就会失去对齐,它们的宽度需要与输入数据的列保持同步。由于列的数量,我不能真正使用固定宽度,尽管这可能是唯一的方法。

例如,这是数据网格的精简定义。所有表都以相同的方式定义,当然还有更多列。任何想法都会得到满足。

<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>

0 个答案:

没有答案