真有这么难吗?没人难解决吗????????

jxzhaogang 2006-09-17 04:50:29
我定义了一个类:
public class testobj
{
private string name;
private string desc;
private SortedList prohastable ;


public testobj()
{
this.prohastable = new SortedList();
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Desc
{
get { return desc; }
set { desc = value; }
}

public SortedList Prohastable
{
get { return prohastable; }
set { prohastable = value; }
}
}
接下来定义一个方法,目的就是将testobj.Prohastable[0].Name绑定到一个TextBox控件.
private void button4_Click(object sender, EventArgs e)
{
ArrayList al = new ArrayList();
testobj ob = new testobj();
ob.sname = "1";
ob.desc = "desc1";

testobj ob1=new testobj();
ob1.sname = "2";
ob1.desc = "2Desc";
ob.Prohastable.Add("1", ob1);
al.Add(ob);
this.txtbinding2.DataBindings.Clear();
this.txtbinding1.DataBindings.Clear();
this.txtbinding1.DataBindings.Add("Text", al, "Prohastable[1].sname");
this.txtbinding2.DataBindings.Add("Text", al, "desc");
}
运行后系统总是提示如下错误信息。
"无法创建字段 Prohastable[1] 的子列表。"
请各位高手帮忙看看是哪儿出现了问题。TKS。
...全文
363 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
股神 2006-10-08
  • 打赏
  • 举报
回复
xingyaohua 2006-09-30
  • 打赏
  • 举报
回复
up
Aallonlin 2006-09-22
  • 打赏
  • 举报
回复
private void button1_Click(object sender, System.EventArgs e)
{
//接下来定义一个方法,目的就是将testobj.Prohastable[0].Name绑定到一个TextBox控件.
ArrayList al = new ArrayList();
testobj ob = new testobj();
ob.Name = "1";
ob.Desc = "desc1";
testobj ob1=new testobj();
ob1.Name = "2";
ob1.Desc = "2Desc";
ob.Prohastable.Add(ob1);
al.Add(ob);
this.txtbinding2.DataBindings.Clear();
this.txtbinding1.DataBindings.Clear();

Binding bind = new Binding("Text", al, "Prohastable");
bind.Format += new ConvertEventHandler(bind_Format);

this.txtbinding1.DataBindings.Add(bind);
// this.txtbinding1.DataBindings.Add("Text", al, "Prohastable[1].sname");
this.txtbinding2.DataBindings.Add("Text", al, "desc");

}

private void bind_Format(object sender, ConvertEventArgs e)
{
ArrayList sl = (ArrayList)e.Value;
testobj to = (testobj)sl[0];

e.Value = to.Desc;
}
}





public class testobj
{
private string name;
private string desc;
private ArrayList prohastable ;


public testobj()
{
this.prohastable = new ArrayList();
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Desc
{
get { return desc; }
set { desc = value; }
}

public ArrayList Prohastable
{
get { return prohastable; }
set { prohastable = value; }
}
}
yicship 2006-09-20
  • 打赏
  • 举报
回复
ding
jxzhaogang 2006-09-18
  • 打赏
  • 举报
回复
你好!
因一直在试,没太注意看贴出来的代码,是有一点错误.现重贴一次.
private System.Windows.Forms.Button button1;
private System.Windows.Forms.TextBox txtbinding1;
private System.Windows.Forms.TextBox txtbinding2;


public class testobj
{
private string name;
private string desc;
private SortedList prohastable ;


public testobj()
{
this.prohastable = new SortedList();
}
public string Name
{
get { return name; }
set { name = value; }
}
public string Desc
{
get { return desc; }
set { desc = value; }
}

public SortedList Prohastable
{
get { return prohastable; }
set { prohastable = value; }
}
}


private void button1_Click(object sender, EventArgs e)
{
//接下来定义一个方法,目的就是将testobj.Prohastable[0].Name绑定到一个TextBox控件.
ArrayList al = new ArrayList();
testobj ob = new testobj();
ob.Name = "1";
ob.Desc = "desc1";
testobj ob1=new testobj();
ob1.Name = "2";
ob1.Desc = "2Desc";
ob.Prohastable.Add("1", ob1);
al.Add(ob);
this.txtbinding2.DataBindings.Clear();
this.txtbinding1.DataBindings.Clear();
this.txtbinding1.DataBindings.Add("Text", al, "Prohastable[1].sname");
this.txtbinding2.DataBindings.Add("Text", al, "desc");
}
scow 2006-09-18
  • 打赏
  • 举报
回复
改成这样:
ArrayList al = new ArrayList();
Castelar_Console.testobj ob = new testobj();
ob.Name = "1";
ob.Desc = "desc1";

testobj ob1 = new testobj();
ob1.Name = "2";
ob1.Desc = "2Desc";
ob.Prohastable.Add("1", ob1);
al.Add(ob);

this.textBox2.DataBindings.Clear();
this.textBox1.DataBindings.Clear();
this.textBox1.DataBindings.Add("Text", ob1, "Name");
this.textBox2.DataBindings.Add("Text", ob, "Desc");

Prohastable[1]返回一个自定义的非基础类型,winform的绑定机制无法处理这种情况
liujiwe79 2006-09-18
  • 打赏
  • 举报
回复
你这里面有很多错误,我试着运行你的代码,里面编译错误就有很多

8,834

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧