首页 > 解决方案 > 如何动态地将“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”值?我找不到解决方案。

标签: vb.netxamlgridviewcolumn

解决方案


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

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

推荐阅读