2011-12-09 34 views
0

我有一类细胞看起来像这样:绑定颜色Solidbrush.color在C#代码

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

林增添了不少“细胞”的的的的Viewport3D生成多维数据集。随着时间的推移,细胞的颜色会发生变化。所以我的问题是 - 不是每次更改时重绘单元格,我可以将单元格的颜色绑定到代码中的solidbrush上吗?

我有这样的事情,但它不会工作。

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的颜色发生变化。但它没有。

感谢 - 大卫

+0

如何在发布之前正确格式化代码? (注意:当前状态*不能*满足该属性) –

回答

1

请阅读data binding overviewhow to debug bindings

对于Source的更改没有任何绑定更新,如果需要更新,则需要将Path设置为相对于源的更新。例如

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

这是因为绑定将认购INPC源(和非叶路径上),并检查该事件报告名称的路径相匹配,如果是这样的目标进行更新。

+0

非常感谢,帮助了我很多。 – user1090614

+0

不客气,很高兴帮助。如果这回答你的问题,你应该[接受](http://meta.stackexchange.com/questions/5234/)它。 –