【发布时间】:2015-10-29 13:34:28
【问题描述】:
我收到以下错误:
DataGridView 默认错误对话框
DataGridView 出现以下异常:System.ArgumentException:参数无效。
在 System.Drawing.Image.FromStream(Stream 流,布尔值 useEmbeddedColorManagement, Boolean validateImageData)
在 System.Drawing.Image.FromStream(Stream 流,布尔值 使用EmbeddedColorManagement)
在 System.Drawing.Image.FromStream(Stream 流)
在 System.Drawing.ImageConverter.ConvertFrom(ITypeDescriptorContext 上下文、CultureInfo 文化、对象值)
在 System.Windows.Forms.Formatter.FormatObjectInternal(Object 值,类型 targetType,TypeConverter sourceConverter,TypeConverter targetConverter, String formatString, IFormatProvider formatInfo, 对象格式化NullValue)
在 System.Windows.Forms.Formatter.FormatObject(对象值,类型 targetType, TypeConverter sourceConverter, TypeConverter targetConverter, String formatString, IFormatProvider formatInfo, Object formattedNullValue, Object dataSourceNullValue)
在 System.Windows.Forms.DataGridViewCell.GetFormattedValue(Object value, Int32 rowIndex, DataGridViewCellStyle& cellStyle, TypeConverter valueTypeConverter, TypeConverter 格式化ValueTypeConverter, DataGridViewDataErrorContexts 上下文) 要替换此默认对话框,请处理 DataError 事件。
我已经创建了一个类
[DataContract]
public class Document : INotifyPropertyChanged
{
[DataMember]
private string _name;
[DataMember]
private DateTime _addedOn;
[DataMember]
private string _extension;
[DataMember]
private byte[] _content;
public event PropertyChangedEventHandler PropertyChanged = delegate { };
public Document()
{
_name = String.Empty;
_extension = String.Empty;
_content = null;
_addedOn = DateTime.Now;
}
public string Name
{
get { return _name; }
set
{
_name = value;
OnPropertyChanged("Name");
}
}
public DateTime AddedOn
{
get { return _addedOn; }
set
{
_addedOn = value;
OnPropertyChanged("AddedOn");
}
}
public string Extension
{
get { return _extension; }
set
{
_extension = value;
OnPropertyChanged("Extension");
}
}
public Byte[] Content
{
get { return _content; }
set
{
_content = value;
OnPropertyChanged("Content");
}
}
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
/// <summary>
/// Gets a value indicating if this document has already been submitted
/// to BancServ.
/// </summary>
public bool Processed
{
get
{
return (_content == null || _content.Length == 0);
}
}
}
我将上述类的列表绑定到 datagridview,然后在下一节中出现上述错误(这是一个简单的绑定)
protected override void OnInitialize()
{
try
{
_documentsGridView.DataSource = this.Data.Documents;
base.OnInitialize();
}
catch (Exception ex)
{
}
}
void btnBrowse_Click(object sender, EventArgs e)
{
try
{
Document document = this.Data.RequestDocument(FileKind.Browse, "Pdf files|*.pdf");
this.Data.Documents.Add(document);
}
catch (Exception ex)
{
}
}
这里我正在浏览一个 *.pdf 文件并通过列表在 datagridview 中提供 .pdf 文件的信息。
【问题讨论】:
-
请分享实际导致错误的代码,而不仅仅是您的类的实现。
标签: c#