我有一个SerializableColor类,允许我对颜色进行XML序列化。
public class SerializableColor
{
// omitted constructors, etc. ...
[XmlIgnore]
public Color Color
{
get { return Color.FromArgb(this.Alpha, this.Red, this.Green, this.Blue); }
set
{
this.Alpha = value.A;
this.Red = value.R;
this.Green = value.G;
this.Blue = value.B;
}
}
public int Alpha { get; set; }
public int Red { get; set; }
public int Green { get; set; }
public int Blue { get; set; }
}
例如,现在考虑一个类foo:
public class Foo
{
public SerializableColor SColor { get; set; }
}
我想将一些winform控件属性数据绑定到这个类。
当我第一次添加数据绑定时,一切工作正常,但任何更改都没有得到正确的支持。
例如,如果我将控件的背景色绑定到scolor,则背景色将被正确更新,等等。但是,如果我随后去更改背景色,则更改不会被传递到foo对象的scolor。如果我更改foo对象的scolor,则不会在控件的背景色上看到更改。
将数据绑定到纯颜色属性可以根据需要工作。只是不适合序列化的颜色。
我哪里做错了?