我正在使用Winforms、CAB、C#和Infragistics技术。我想要使用MVP模式,将后端与WCF连接起来。
在我的Presenter中,我有一个Model,我们称之为AgreementDataContract。这个数据合同有一堆属性:
...
[DataMember]
public byte[] PVImage { get; set; }
[DataMember]
public byte[] OntwerpImage { get; set; }
[DataMember]
public Decimal WattpiekPrijs { get; set; }
...
你会注意到图像被存储为byte[]类型。我将这些属性绑定到用户控件上的控件中:
BindingHelper.BindField(_ultraPictureBoxPV, "Image", _bindingSource, "PVImage");
BindingHelper.BindField(_ultraPictureBoxOntwerp, "Image", _bindingSource, "OntwerpImage");
BindingHelper只是向指定的控件(control.BindingContext.Add(...))添加了一个BindingContext。
无论如何,问题在于:数据契约将图像作为字节数组,而我正在绑定到一个Image。这导致属性保持“null”,因为它不想将Image放入字节数组中 ;)
我尝试过进行调整,但我认为有两种可能性:
1.我可以尝试使用某种转换器?因此,当插入图像时,它将作为字节数组而不是Image传递到Model (=数据绑定)。
2.我可以放弃绑定,并在表单“提交”时制作一个事件,将图像自己转换为字节数组并填充模型。 (=无数据绑定)
TL;DR; 您知道在传递给数据绑定时将图像“转换”为字节数组的方法吗?
希望我的问题很清楚!感谢您的帮助