组合框VB.Net的双向数据绑定
我试图得到双向组合框绑定工作。我有一个类作为组合框的源,我将组合框的选定项/值绑定到数据表,数据表通过绑定源绑定到数据网格视图。它工作,但不是我所期望的。我想实现两件事组合框VB.Net的双向数据绑定,vb.net,object,datatables,combobox,Vb.net,Object,Datatables,Combobox,我试图得到双向组合框绑定工作。我有一个类作为组合框的源,我将组合框的选定项/值绑定到数据表,数据表通过绑定源绑定到数据网格视图。它工作,但不是我所期望的。我想实现两件事 一旦组合框中的选择发生更改,立即更新数据表网格视图(强制更新数据) 将绑定添加到年龄列 这是我的密码。正确的方法是什么。任何帮助都将不胜感激。谢谢 导入System.ComponentModel 导入System.Runtime.CompilerServices 公开课表格1 实现INotifyPropertyChanged 公
导入System.ComponentModel
导入System.Runtime.CompilerServices
公开课表格1
实现INotifyPropertyChanged
公共BS作为新的BindingSource
公共联系人BL作为绑定列表(联系人)
私有子表单1_Load(发送方作为对象,e作为事件参数)处理MyBase.Load
将联系人暗显为来自的新联系人列表{
具有{.FirstName=“Name1”、.LastName=“LName1”、.Age=50}的新联系人(),
具有{.FirstName=“Name2”、.LastName=“LName2”、.Age=39}的新联系人(),
具有{.FirstName=“Name3”、.LastName=“LName3”、.Age=30}的新联系人(),
具有{.FirstName=“Name4”、.LastName=“LName4”、.Age=66}的新联系人()
ContactBL=新绑定列表(联系人)(联系人)
ComboBox1.DataSource=ContactBL
ComboBox1.DisplayMember=“FirstName”
ComboBox1.ValueMember=“LastName”
Dim表作为新数据表(“表1”)
table.Columns.Add(“FirstName”,GetType(String))
table.Columns.Add(“LastName”,GetType(String))
table.Columns.Add(“年龄”,GetType(整数))
表.行.添加(“名称3”,“LName3”,30)
表.行.添加(“名称2”,“名称2”,39)
BS.DataSource=表
DataGridView1.DataSource=BS
ComboBox1.DataBindings.Add(“SelectedValue”,BS,“LastName”,True,DataSourceUpdateMode.OnPropertyChanged)
ComboBox1.DataBindings.Add(“Text”,BS,“FirstName”,True,DataSourceUpdateMode.OnPropertyChanged)
DataGridView2.DataSource=ContactBL
端接头
私有子按钮1\u单击(发送者作为对象,e作为事件参数)处理按钮1。单击
尺寸nr=C类型(ComboBox1.SelectedItem,联系人)
Dim NewRow=DirectCast(BS.AddNew(),DataRowView)
NewRow(“FirstName”)=nr.FirstName
NewRow(“LastName”)=nr.LastName
纽罗(“年龄”)=平均年龄
BS.EndEdit()
端接头
Private\u FirstName作为字符串
公共属性FirstName()作为字符串
得到
Return\u FirstName
结束
设置(ByVal值作为字符串)
_FirstName=value
OnPropertyChanged()
端集
端属性
Private\u LastName作为字符串
公共属性LastName()作为字符串
得到
Return\u LastName
结束
设置(ByVal值作为字符串)
_LastName=value
OnPropertyChanged()
端集
端属性
Private _Age为整数
公共属性Age()为整数
得到
回归年龄
结束
设置(ByVal值为整数)
_年龄=价值
OnPropertyChanged()
端集
端属性
公共事件PropertyChanged为PropertyChangedEventHandler实现INotifyPropertyChanged.PropertyChanged
受保护的可重写子OnPropertyChanged(
可选成员名称(字符串=无)
RaiseEvent PropertyChanged(Me,新PropertyChangedEventArgs(memberName))
端接头
子BindingComplete(ByVal发送方作为对象,ByVal e作为BindingCompleteEventArgs)
如果e.BindingCompleteContext=BindingCompleteContext.DataSourceUpdate且e.Exception为Nothing,则e.Binding.BindingManagerBase.EndCurrentEdit()为空
端接头
末级
公共类联系人
实现INotifyPropertyChanged
Private\u firstName作为字符串
Private\u lastName作为字符串
Private _Age为整数
公共属性ContactId()为整数
公共属性FirstName()作为字符串
得到
Return\u firstName
结束
设置
_firstName=Value
OnPropertyChanged()
端集
端属性
公共属性LastName()作为字符串
得到
Return\u lastName
结束
设置
_lastName=Value
OnPropertyChanged()
端集
端属性
公共属性Age()为整数
得到
回归年龄
结束
设置
_年龄=价值
OnPropertyChanged()
端集
端属性
作为字符串的公共只读属性FullName()
得到
返回$“{FirstName}{LastName}”
结束
端属性
公共事件PropertyChanged为PropertyChangedEventHandler实现INotifyPropertyChanged.PropertyChanged
受保护的可重写子OnPropertyChanged(
可选成员名称(字符串=无)
RaiseEvent PropertyChanged(Me,新PropertyChangedEventArgs(memberName))
端接头
末级
谢谢