0

我有一个类 Cell 看起来像这样:

public Color color{get { return colorr; }
set { colorr = value;
        if (this.PropertyChanged != null){
            this.PropertyChanged(this, new PropertyChangedEventArgs("color"));
        }
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;

我在 viewport3D 中添加了很多“单元”来生成多维数据集。随着时间的推移,细胞的颜色会发生变化。所以我的问题是 - 我可以将单元格的颜色绑定到代码中的实心画笔,而不是每次更改时都重新绘制单元格吗?

我有这样的东西,但它不会工作。

Binding b = new Binding();
        b.Source = cell.color;

        SolidColorBrush solidBrush = new SolidColorBrush();
        BindingOperations.SetBinding(solidBrush, SolidColorBrush.ColorProperty, b);

        Material material = new DiffuseMaterial(solidBrush);

我现在假设solidBrush 的颜色会在单元格颜色发生变化时发生变化,因此viewport3D 上立方体的颜色也会发生变化。但它没有。

谢谢 - 大卫

4

1 回答 1

1

请阅读数据绑定概述以及如何调试绑定

对 的更改没有绑定更新Source,如果您想要更新,则需要设置Path相对于源的相对值。例如

b.Source = cell;
b.Path = new PropertyPath("color");

这是因为绑定将订阅INPC源(路径上的非叶子)并检查事件报告的名称是否与路径匹配,如果是,则更新目标。

于 2011-12-09T23:11:10.577 回答