1
结合我知道这是不是真的做到这一点的最好办法,但我有一个特殊的场合,当我需要使用代码来新列添加到DataGrid和应用结合到它如何执行与programmation
例如,我得到这个:
<DataGrid x:Name="GridUtilisateurs" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding}" Style="{StaticResource BaseGrid}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Canvas Background="{Binding ColorActive}"></Canvas>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Usager" Width="*" MinWidth="50"
Binding="{Binding UserName}"
IsReadOnly="True" />
</DataGrid.Columns>
</DataGrid>
我如何做同样的事情,但代码?我遇到的主要问题是绑定,其余的都很好。
这是我到目前为止,但我无法使绑定工作。结合“路径”我会在XAML使用相当于oCol.ColumnName:
Dim oNewColumn As DataGridColumn Dim oBinding As New System.Windows.Data.Binding Select Case oCol.DataType Case GetType(Boolean) oNewColumn = New DataGridCheckBoxColumn() oNewColumn.MinWidth = 25 CType(oNewColumn, DataGridCheckBoxColumn).IsThreeState = False CType(oNewColumn, DataGridCheckBoxColumn).Binding = oBinding oNewColumn.Width = System.Windows.Controls.DataGridLength.SizeToHeader Case Else oNewColumn = New DataGridTextColumn() oNewColumn.MinWidth = 50 oNewColumn.Width = New System.Windows.Controls.DataGridLength(1, System.Windows.Controls.DataGridLengthUnitType.Star) CType(oNewColumn, DataGridTextColumn).Binding = oBinding End Select oNewColumn.Header = oCol.ColumnName GridData.Columns.Add(oNewColumn) Next GridData.ItemsSource = MyList
一段时间后,我终于明白什么是错的。我需要使用[说明],因为我有一个日期表。现在,这已经完成了,但我还有另一个问题。由于有时我需要日期,所以我需要使用DataTemplateColumn,并尝试使用一个日期,但目前为止我无法完成一项工作。任何人都知道如何做到这一点? 谢谢,
我试过了,为什么(我需要的,因为我被赋予了结构的使用[PathName1],而不是没有工作,虽然现在我knwo。 – 2011-04-14 12:47:51
在创建oBinding你不设置路径新的绑定对象。 – Nario 2011-04-14 12:54:36
可以使用C#写这个(请)? – Nario 2011-04-14 12:55:41