如何动态地将“ x:name”属性添加到GridviewColumn?

问题描述

我有以下代码

For i = 0 To clmncount
  Dim GridView2 As New GridViewColumn
  GridView2.SetValue(NameProperty,"Grclnm" & i)
  datatemple1 = New DataTemplate
  Dim a as New FrameworkElementFactory(GetType(TextBox))
  a.SetValue(Grid.ColumnProperty,0)
  Dim actualB As New Binding("ActualWidth")
  actualB.ElementName = GridView2.GetValue(NameProperty)
  Dim st As New Style(GetType(TextBox))
  Dim stt As New Setter(TextBox.WidthProperty,actualB)
  st.Setters.Add(stt)
  a.SetValue(TextBox.StyleProperty,st)
  datatemple1.VisualTree = a
  GridView2.Header = "Employee No." & x
  GridView2.Width = 99
  GridView2.CellTemplate = datatemple1
  UGridview1.Columns.Add(GridView2)
Next

通过这些代码,我试图对这些XAML进行类似的代码

<Style>
  <Setter Property = "Width" Value ="{Binding ElementName=Grclnm0,Path=ActualWidth}"/>
</Style>

但是这个

 GridView2.SetValue(NameProperty,"Grclnm" & i)

VB.Net无法正常工作。如何动态设置GridviewColumn的“ x:name”值?我找不到解决方法

解决方法

您可以使用BindingOperations.SetBinding方法并将绑定的Source属性设置为Grclnm0

BindingOperations.SetBinding(GridView2,GridViewColumn.WidthProperty,New Customer("ActualWidth") With {.Source = Grclnm0})