我试图找出如何更改代码中自动生成列的文本对齐方式. Private Sub dgBook_AutoGeneratingColumn(sender As System.Object, e As System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs) Handles dgBook.AutoGeneratingColu
Private Sub dgBook_AutoGeneratingColumn(sender As System.Object, e As System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs) Handles dgBook.AutoGeneratingColumn
If e.PropertyType = GetType(DateTime) Then
Dim dataGridTextColumn As DataGridTextColumn = TryCast(e.Column, DataGridTextColumn)
If dataGridTextColumn IsNot Nothing Then
dataGridTextColumn.Binding.StringFormat = "{0:d}"
End If
End If
If e.PropertyName = "Amount" Then
Dim dataGridTextColumn As DataGridTextColumn = TryCast(e.Column, DataGridTextColumn)
If dataGridTextColumn IsNot Nothing Then
dataGridTextColumn.Binding.StringFormat = "{0:#,##0.00;(#,##0.00)}"
'I tried the next line for testing but it did not work
dataGridTextColumn.SetValue(TextBox.TextAlignmentProperty, TextAlignment.Center)
End If
End If
End Sub
所以我最终做的是在XAML WPF代码中设置一个样式
<Window.Resources>
<Style TargetType="DataGridCell" x:Key="rightAlignCell">
<Setter Property="HorizontalAlignment" Value="Right"></Setter>
</Style>
</Window.Resources>
然后我在后面的代码中将单元格样式设置为该样式.
Private Sub datagrid1_AutoGeneratingColumn(sender As System.Object, e As System.Windows.Controls.DataGridAutoGeneratingColumnEventArgs) Handles datagrid1.AutoGeneratingColumn
If e.PropertyName = "Amount" Then
Dim dataGridTextColumn As DataGridTextColumn = TryCast(e.Column, DataGridTextColumn)
If dataGridTextColumn IsNot Nothing Then
dataGridTextColumn.Binding.StringFormat = "{0:#,##0.00;(#,##0.00)}"
End If
e.Column.CellStyle = TryCast(FindResource("rightAlignCell"), Style)
End If
end sub
