WPF 以编程方式使用 DataTrigger 添加 DataGridTextColumn

WPF Programmatically add DataGridTextColumn with DataTrigger

我有一个由用户动态创建的 DataGrid。这意味着每次 运行s 列都可能而且将会非常不同。出于这个原因,每一列都是以编程方式添加的。我需要向其中添加一些 DataTriggers,所以我认为这会起作用:

Style style = new Style();
style.TargetType = typeof(DataGridTextColumn);
DataTrigger tg = new DataTrigger()
{
    Binding = new Binding(value),
    Value = "bad data"
};
tg.Setters.Add(new Setter()
{
    Property = UIElement.VisibilityProperty,
    Value = Visibility.Hidden
});

虽然这在 IDE 中没有错误,但当 运行 它崩溃并给我 'DataGridTextColumn' type must derive from FrameworkElement or FrameworkContentElement.

以编程方式将 DataTrigger 添加到 DataGridTextColumn 的正确方法是什么

您需要使用 typeof(DataGridCell)。触发器应应用于 Cell 本身,而不是 Column.