WPF 数据网格和行数据绑定事件?

WPF datagrid and row data bound event?

我有一个 WPF 网格,其中 autogeneratedcolumn 设置为 true。我必须为网格中的每一行修改给定单元格的模板。 WPF 数据网格中是否有一个事件可以让我捕获每一行并在呈现之前执行必要的修改?

如果没有,那么您能否建议在自动生成的数据网格中自定义行单元格的最佳方法?

我建议使用 DataTemplateSelector 而不是搞乱事件。这将允许您以编程方式根据单元格中的数据干净地改变单元格模板。 WPF 中的挂钩事件不可避免地导致引用的保留时间比您预期的要长得多,这表现为内存泄漏。

MSDN 文档可用 here

来自 MSDN 的代码:

Namespace SDKSample
    Public Class TaskListDataTemplateSelector
        Inherits DataTemplateSelector
        Public Overrides Function SelectTemplate(ByVal item As Object, ByVal container As DependencyObject) As DataTemplate

            Dim element As FrameworkElement
            element = TryCast(container, FrameworkElement)

            If element IsNot Nothing AndAlso item IsNot Nothing AndAlso TypeOf item Is Task Then

                Dim taskitem As Task = TryCast(item, Task)

                If taskitem.Priority = 1 Then
                    Return TryCast(element.FindResource("importantTaskTemplate"), DataTemplate)
                Else
                    Return TryCast(element.FindResource("myTaskTemplate"), DataTemplate)
                End If
            End If

            Return Nothing
        End Function
    End Class
End Namespace