【发布时间】:2016-06-08 08:11:54
【问题描述】:
我有一个类 Employee 定义为这个
public class Employee : INotifyPropertyChanged
{
private Image photo;
public Image Photo
{
get { return photo; }
set { photo = value; InvokePropertyChanged(new PropertyChangedEventArgs("Photo")); }
}
#region Implementation of INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
public void InvokePropertyChanged(PropertyChangedEventArgs e)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, e);
}
#endregion
}
这是我的用法:我有一个名为pbPhoto 的PictureBox 控件,它的图像具有我的Resources.Blank 的默认值,该属性数据绑定到Employee.Photo 属性在Page_Load 事件中。
Employee employee = new Employee();
this.pbPhoto.DataBindings.Add("Image", employee, "Photo");
但它似乎不起作用,我收到了这个错误消息。
无法将值格式化为所需的类型。
【问题讨论】:
-
第二个参数应该包含一个对象,而不是一个类型
-
请检查修改后的问题。
-
我看不到您实际设置 Photo 属性的位置。我猜您不能将绑定设置为返回 null 的属性
-
如果您不想将图像分配给员工的照片属性,然后在员工类的构造函数中为照片属性添加一个空图像,例如:this.photo = new位图(1, 1);
-
这个解决了我的问题,由于对象的照片图像属性为空而发生错误。我刚刚分配了一个空白.png,它运行良好。谢谢。
标签: c# winforms data-binding