[英]C# WPF Add Style Object To Cells In Datagrid Using Trigger
使用此线程的答案以编程方式添加样式触发器
Style st = new Style();
DataTrigger tg = new DataTrigger()
{
Binding = new Binding("PackageTechnology_c"),
Value = "Plastic"
};
tg.Setters.Add(new Setter()
{
Property = Control.BackgroundProperty,
Value = ColorConverter.ConvertFromString("Red")
});
st.Triggers.Add(tg);
我希望能够在运行时添加 styles 并触发到我的 Datagrid。 一旦我创建了这种样式 object,如何将样式添加到我的数据网格中? 我不想在 XML 中执行此操作,因为我正在动态创建 styles 是运行时的。 我如何使用代码隐藏来做到这一点?
我试过了:
datagrid.Style = st;
如果我做:
datagrid.CellStyle = st;
但我想要的是具有值的单元格:“包装技术”列中的“塑料”变为红色。 有没有办法做到这一点?
您正在寻找的是DataGridColumn.CellStyle
。 它将给定Style
应用于该特定列中的所有单元格,而不是DataGrid
中的每个单元格。
由于您正在自动生成列,因此您将使用DataGrid.AutoGeneratingColumn
事件。 它在创建时为每个自动生成的列引发。 您可以使用该参数来检查正在创建哪个列,如果它是PackageTechnologyc
列,那么您将创建并设置Style
。
如果您在 XAML 中定义列,您将有<DataGrid Name="datagrid"...
,然后在稍后的某个地方<DataGridTextColumn Header="PackageTechnologyc"...
。 在这种情况下,您只需向DataGridTextColumn
添加一个Name
,然后像这样引用它: packageTechnologyColumn.Style = st;
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.