数据绑定遇到两个问题,大家进来看一下。

bilujun 2006-04-28 11:07:33
1:ComboBox的数据绑定问题,如何才能实现象Delphi中的DBComboboxLookup组件的功能。
2:数据绑定同步刷新的问题,我把一个DataGridView和一个TextBox绑定到同一个数据源,如何能达到修改TextBox内容时候DataGridView也同时变化(希望象Delphi里的效果一样,即如果有一个DBText和DBGrid绑定到同一个DataSource,则修改DBText中的内容,DBGrid内容也同时变化.现在是修改完TextBox内容后需要点击一下DataGridView,DataGridView中的内容才会变化)
...全文
208 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
bilujun 2006-04-29
  • 打赏
  • 举报
回复
DBLookupComboBox主要有三个字段:ListSource 、ListField 和 KeyField。下拉列表由 ListSource 数据源的ListField 列表值确定。当下拉列表中的选项被选中时,选中项的行相应的 KeyField 字段值被写到 DataSource 组件引用的数据集的 DataSource 字段中
Knight94 2006-04-28
  • 打赏
  • 举报
回复
to 2
你可以参看
http://www.syncfusion.com/FAQ/WindowsForms/FAQ_c43c.aspx#q1017q
bilujun 2006-04-28
  • 打赏
  • 举报
回复
楼上,用数据字典绑定跟上面的问题没有冲突啊,应该同样存在上面的问题吧。
超越_zww 2006-04-28
  • 打赏
  • 举报
回复
up!
limengqiang 2006-04-28
  • 打赏
  • 举报
回复
建议用数据字典啊进行绑定和维护
Knight94 2006-04-28
  • 打赏
  • 举报
回复
to 1:ComboBox的数据绑定问题,如何才能实现象Delphi中的DBComboboxLookup组件的功能。

能具体说说吗,我好久没用delphi了,快3、4年了,是类似于autocompleted功能吗
bilujun 2006-04-28
  • 打赏
  • 举报
回复
第2个问题解决了,谢谢大家,特别是Knight94(愚翁),帮我解决了好几个问题了^-^

在调用this.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();之前,调用this.DataBindings["Text"].WriteValue()后就可以了。

第一个问题大家继续想办法阿
bilujun 2006-04-28
  • 打赏
  • 举报
回复
如果我在主窗体上放一个TextBox,然后绑定到DataGrid的数据源,然后在TextBox的KeyPress代码中调用TextBox1.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();就能同步修改了,为什么定义了一个控件以后就无效了呢。
bilujun 2006-04-28
  • 打赏
  • 举报
回复
楼上你好
txt.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();修改成
this.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
结果不报错,this.DataBindings.Count也=1,但是,没有达到预期的效果,即在DataGridView中的数据没有发生改变。
zhaoliang_chen 2006-04-28
  • 打赏
  • 举报
回复
dbText1.DataBindings
bilujun 2006-04-28
  • 打赏
  • 举报
回复
Knight94(愚翁) ( ),谢谢,第二个问题基本解决,在解决过程中又遇到问题。我定义一个用户控件。代码如下(参考了msdn创建支持简单数据绑定的用户控件部分)
[System.ComponentModel.DefaultBindingProperty("Text")]

public partial class DBText : UserControl
{
public DBText()
{
InitializeComponent();
}
public override string Text
{
get { return txt.Text; }
set { txt.Text = value; }
}

private void txt_KeyPress(object sender, KeyPressEventArgs e)
{
txt.DataBindings["Text"].BindingManagerBase.EndCurrentEdit();
}
}

在主程序中用下面代码进行绑定
dbText1.DataBindings.Add("Text", BindingSource, "字段A");
结果出错,在监视窗口中输入txt.DataBindings.Count,结果却为0。用户控件要如何才能绑定到数据源呢
伴老思源 2006-04-28
  • 打赏
  • 举报
回复
……
zhoujijunnt 2006-04-28
  • 打赏
  • 举报
回复
PS:与楼上出处相同,惭愧
zhoujijunnt 2006-04-28
  • 打赏
  • 举报
回复
2:数据绑定同步刷新:
//参考:
this.myDataTable = GetATable(); //get a datatable somehow...

this.dataGrid1.DataSource = myDataTable;

//set a new binding context for the combobox
this.comboBox1.BindingContext = new BindingContext();
this.comboBox1.DataSource = myDataTable;
this.comboBox1.DisplayMember = "Col1";
this.comboBox1.ValueMember = "Col1";

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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