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
.
我有一个由用户动态创建的 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
.