Dans WPF I ont une grille avec un certain nombre de colonnes définies et la largeur de chaque colonne est liée à la largeur d'une colonne de grille de données, comme suit:Comment lier WPF Grid Column Width dans le code?
<Grid.ColumnDefinitions>
<ColumnDefinition Width="{Binding ElementName=dataGrid, Path=RowHeaderWidth}" />
<ColumnDefinition Width="{Binding ElementName=Column0, Path=ActualWidth}" />
<ColumnDefinition Width="{Binding ElementName=Column1, Path=ActualWidth}" />
Etc.
<Controls:DataGrid BorderBrush="White" ItemsSource="{Binding DataTable}"
Name="datagrid1" Grid.Row="2" RowHeaderWidth="0">
<Controls:DataGrid.Columns>
<Controls:DataGridTextColumn Header="Included" Width="50" x:Name="Column0" />
<Controls:DataGridTextColumn Header="First" Width="100" x:Name="Column1" />
Etc.
Quand je lance le programme et redimensionner manuellement les colonnes , Je peux voir le redimensionnement des colonnes de la grille (ShowGridLines = true) et les éléments liés à des colonnes de grille particulières se déplacent de manière appropriée.
Cependant, lorsque j'essaie d'ajouter les colonnes de grille de données et de grille dans le code, je ne peux pas faire fonctionner la liaison (aucune erreur de liaison). Voici un exemple:
binding = new Binding()
{
Source = dataGrid.Columns[col],
Path = new PropertyPath("ActualWidth"),
Mode = BindingMode.OneWay,
};
colDef.SetBinding(WidthProperty, binding);
J'ai essayé d'autres variantes (par exemple ElementName = « DataGridColumn1 », chemin = new PropertyPath (« ActualWidth ») mais se soit pas d'erreur (et non contraignant) ou « ne peut pas trouver la source . d'erreur de liaison » ou une erreur de chemin de BindingExpression
Il doit y avoir un moyen de définir la liaison dans le code ...