gpt4 book ai didi

c# - WPF 数据网格中的第一行样式

转载 作者:行者123 更新时间:2023-11-30 18:10:20 26 4
gpt4 key购买 nike

我想更改 WPF 数据网格中第一行(仅)的样式,但还没有找到如何操作的方法。我想知道如何创建一个触发器,像这样:

<Style TargetType="{x:Type dg:DataGridRow}">
<Style.Triggers>
<Trigger Property="SelectedIndex" Value="0">
<Setter Property="Background" Value="Red"/>
</Trigger>
</Style.Triggers>
</Style>

但是当然这不起作用,因为 DataGridRow 上没有“SelectedIndex”属性。我也曾尝试在我的代码中执行此操作,但无法正常工作。

这似乎是相当简单的事情,但我还没有做到,所以任何建议将不胜感激。

谢谢,将

最佳答案

您可以创建一个 IValueConverter 来返回您的 Style,可以是 Style 对象,也可以只是字符串表示形式(即样式的名称)。然后,您可以将 DataGrid 的样式属性绑定(bind)到转换器,并将基础项目列表作为参数传入以确定当前项目的索引?

转换器可能看起来像这样......

public class StyleConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Style style1 = App.Current.FindResource("RowStyle1") as Style;
Style style2 = App.Current.FindResource("RowStyle2") as Style;

List<object> items = parameter as List<object>;

if (items[0] == value)
{
return style1;
}

return style2;
}
}

不确定这是否可行,我可能也没有很好地解释它!

我现在很好奇,我可以尝试一下,看看我是否可以让它工作!

关于c# - WPF 数据网格中的第一行样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498375/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com