自定义类

时间:2015-10-09 09:17:05

标签: c# data-binding dataset

为了避免混淆,我将我的代码翻译为英语使用者友好File实际为Ficheiro NOT 存在。因此,我处理的是自己的类,而不是来自File的{​​{1}}。 我从数据集中设置了System.IO。如果我编辑并插入新值,bindingsourcetextbox等控件就可以正常工作。但我有一个combobox列(用于存储小的pdf文件),所以我需要一个绑定控件。 我的想法是创建一个名为File的类,并继承自Control类以使用varbinary,因为databinding控件也使用相同的方法将TextBox设置为databinding。 这里的问题是当我调用对话框函数时(见下文)我在File类上有一个bindingsource,内容集。

System.StackOverflowException

这里的类文件:

private void button1_Click(object sender, EventArgs e)
{
            f.dialog();
}

我将控件绑定到bindingsource的方式:

class File : Control
{
    private byte[] _content
    public byte[] Content{
        get{
            return _content;
        }
        set{
            _content=value;
        }
    }
    //public string name; //not used for now
    public string ext;
    public string type;
    public string fileName;
    public File(){

    }
    public byte[] getBytes()
    {
        return Content;
    }
    public void dialog(){
        OpenFileDialog fdg = new OpenFileDialog();
            fdg.Filter = "PDF Files | *.pdf";
            if (fdg.ShowDialog() == DialogResult.OK)
            {
                if (fdg.fileName.Length > 0)
                {
                    fileName = fdg.FileName;
                    ext = ".pdf";
                    type = "pdf";
                    using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read))
                    {
                        using (var reader = new BinaryReader(stream))
                        {
                            content = reader.ReadBytes((int)stream.Length);
                            stream.Close();
                        }
                    }
                }
            }
    }

}

编辑: 现在我有另一个错误。

private void Upload_Load(object sender, EventArgs e)
{
    f = new File();
    f.DataBindings.Add(new System.Windows.Forms.Binding("Content", this.fBindingSource, "FileContent", false));
    // TODO: This line of code loads data into the 'pEGPIDataSet_ficheiro_ds.Ficheiro' table. You can move, or remove it, as needed.
    this.fTableAdapter.Fill(this.myautodatasetfromfile.Ficheiro);\
}

我添加了我的控件,它已设置内容。为什么我这个例外?

1 个答案:

答案 0 :(得分:1)

我对你的chmod -R 777 storage 财产非常困惑 首先,我会尝试使用本地成员:

content

请在此处阅读:property setter body