1

在我的 WPF 项目中,我尝试在后面的代码中创建显示的对象。对于某些属性,我使用元素绑定,fe:

<GridViewColumn ... Width="{Binding ElementName=dummywidth1, Path=ActualWidth}" >

要在后面的代码中执行此操作,我使用以下代码:

GridViewColumn column = new GridViewColumn();
Binding binding = new Binding("ActualWidth");
binding.ElementName = "dummywidth1";
BindingOperations.SetBinding(column, GridViewColumn.WidthProperty, binding);

其中“dummywidth1”是要使用的宽度的边框。

如果边框“dummywidth1”已经是 .xaml 文件的一部分,则此方法效果很好。如果我也在后面的代码中创建边框,则宽度不会应用于列。

Border border = new Border();
border.Name = "WidthHelper" + Grid_Sizer.ColumnDefinitions.Count;
Grid_Sizer.Children.Add(border);

并使用新的border.Name 进行绑定。

binding.ElementName = border.Name;

看来,元素绑定不适用于刚刚创建的 Border 对象。显示 WPF 时,在后面的代码中创建的边框具有所需的大小,但该大小不会传输到列。有什么方法可以实现与后面代码中创建的两个元素的元素绑定?

提前致谢,
弗兰克

4

1 回答 1

3

设置绑定的Source属性而不是ElementName

binding.Source = border;
于 2017-06-23T11:40:46.987 回答