问题描述
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
<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})