如何使用viewmodel值和查找字典设置数据网格行的背景颜色?

日田切博塔里

我有一个ItemsSource这样设置的DataGrid

TheGrid.ItemsSource = items;

还有一个XAML:

<DataGrid Name="TheGrid" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False">
  <DataGrid.Resources>
    <Style.Setters>
      <Setter Property = "Background" Value="{Binding = ???}" ></Setter>
    </Style.Setters>
  </DataGrid.Resources>
  <DataGrid.Columns>
    <DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
    <DataGridTextColumn Header="Time" Binding="{Binding Time}"/>
    ...
  </DataGrid.Columns>
</DataGrid>

现在,在我看来,我有这样的公共词典:

public IDictionary<string, Color> IdColors { get; set; }

问题是我不知道如何从我的ID中获取IDItemsSource并将其传递到绑定中,这样它将访问该ID上的字典并采用颜色。我已阅读替代解决方案,例如:

  1. 在转换器中执行此操作

  2. 订阅LoadingRow编程方式将其设置在那里

我想我知道该怎么做#2了,但我来问问堆栈是否明智。

科伦丁·潘

如果要定义转换器,则可以采用以下方式:

public class IdToBrushConverter : IValueConverter {
    /// <summary>
    /// Converts an ID into a Brush
    /// </summary>
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
        return new SolidColorBrush(IdColors[value]); //need for example some static access to IdColors here
        //You can also define IdColors here or use other custom logic.
    }
    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
        throw new NotImplementedException();
    }
}

在XAML中,您可以像这样调用转换器:

<DataGrid Name="TheGrid" AutoGenerateColumns="False" CanUserAddRows="False CanUserDeleteRows="False">
  <DataGrid.Resources>
    <!--You might need some namespace prefix here-->
    <view:IdToBrushConverter x:Key="IdToBrushConverter"></view:IdToBrushConverter>
    <Style.Setters>
      <Setter Property = "Background" Value="{Binding Path=Id, Converter={StaticResource IdToBrushConverter}" ></Setter>
    </Style.Setters>
  </DataGrid.Resources>
  <DataGrid.Columns>
    <DataGridTextColumn Header="Id" Binding="{Binding Id}"/>
    <DataGridTextColumn Header="Time" Binding="{Binding Time}"/>
    ...
  </DataGrid.Columns>
</DataGrid>

该转换器将被调用并应用于该Id属性,并返回SolidColorBrush具有所需颜色的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改/设置数据网格中单行的背景颜色?

来自分类Dev

如何查找字典值的长度

来自分类Dev

如何使用行索引更改剑道网格行的背景颜色

来自分类Dev

如何使用行索引更改剑道网格行的背景颜色

来自分类Dev

查找字典的不同值

来自分类Dev

查找字典中的值

来自分类Dev

如何设置jqgrid的备用行颜色和背景色

来自分类Dev

使用TCL查找字典中值的最大绝对值

来自分类Dev

如何使用wordnet拆分列名并查找字典含义?

来自分类Dev

使用GNUplot设置轮廓标签,网格和颜色图插值吗?

来自分类Dev

python如何查找字典是否包含其他字典中的数据

来自分类Dev

在元组python中查找字典中的最大值和最小值

来自分类Dev

查找字典数组的最大值和最小值的 Pythonic 方法

来自分类Dev

如何按背景颜色对行值求和

来自分类Dev

如何使用UIAppearance设置UIPickerView的背景颜色?

来自分类Dev

如何在WPF中使用MVVM设计模式以编程方式选择和设置数据网格行的焦点

来自分类Dev

如何根据行和列数据查找值

来自分类Dev

如何根据行和列数据查找值

来自分类Dev

如何通过使用awk忽略带有字符的行来查找字段的最大值?

来自分类Dev

如何从短语列表中查找字典中的短语,以及如何使用找到并计数的短语创建数据框。重复数应计算在内

来自分类Dev

如何使用数据绑定在WPF中设置列表视图项的背景颜色?

来自分类Dev

如何使用数据绑定在WPF中设置列表视图项的背景颜色?

来自分类Dev

使用字典查找和一些简单的数学来创建数据框值

来自分类Dev

如何使用Apache POI在docx文件中设置运行(行中的单词或段落)的背景颜色?

来自分类Dev

如何使用jQuery查找任何特定列的网格最后一行值

来自分类Dev

设置按钮背景和颜色

来自分类Dev

如何使用Python查找字典中所有键的所有子级

来自分类Dev

在WPF中更改网格行背景颜色

来自分类Dev

通过两个值查找字典

Related 相关文章

  1. 1

    如何更改/设置数据网格中单行的背景颜色?

  2. 2

    如何查找字典值的长度

  3. 3

    如何使用行索引更改剑道网格行的背景颜色

  4. 4

    如何使用行索引更改剑道网格行的背景颜色

  5. 5

    查找字典的不同值

  6. 6

    查找字典中的值

  7. 7

    如何设置jqgrid的备用行颜色和背景色

  8. 8

    使用TCL查找字典中值的最大绝对值

  9. 9

    如何使用wordnet拆分列名并查找字典含义?

  10. 10

    使用GNUplot设置轮廓标签,网格和颜色图插值吗?

  11. 11

    python如何查找字典是否包含其他字典中的数据

  12. 12

    在元组python中查找字典中的最大值和最小值

  13. 13

    查找字典数组的最大值和最小值的 Pythonic 方法

  14. 14

    如何按背景颜色对行值求和

  15. 15

    如何使用UIAppearance设置UIPickerView的背景颜色?

  16. 16

    如何在WPF中使用MVVM设计模式以编程方式选择和设置数据网格行的焦点

  17. 17

    如何根据行和列数据查找值

  18. 18

    如何根据行和列数据查找值

  19. 19

    如何通过使用awk忽略带有字符的行来查找字段的最大值?

  20. 20

    如何从短语列表中查找字典中的短语,以及如何使用找到并计数的短语创建数据框。重复数应计算在内

  21. 21

    如何使用数据绑定在WPF中设置列表视图项的背景颜色?

  22. 22

    如何使用数据绑定在WPF中设置列表视图项的背景颜色?

  23. 23

    使用字典查找和一些简单的数学来创建数据框值

  24. 24

    如何使用Apache POI在docx文件中设置运行(行中的单词或段落)的背景颜色?

  25. 25

    如何使用jQuery查找任何特定列的网格最后一行值

  26. 26

    设置按钮背景和颜色

  27. 27

    如何使用Python查找字典中所有键的所有子级

  28. 28

    在WPF中更改网格行背景颜色

  29. 29

    通过两个值查找字典

热门标签

归档