Winforms、数据绑定、列表框和文本框我的屏幕上有一个列表框(MyListBox)和一个文本框(MyTextBox)。ListBox填充了一个List(OfT),它们都是自定义项。现在我尝试这样做:ListBox的数据源是List(OfT)。现在,当项目发生变化时,我希望文本框更新为列表框中所选项目的特定属性。在代码中,这意味着:Me.MyListBox.DisplayMember="SelectionName"Me.MyListBox.ValueMember="Id"MyTextbox.DataBindings.Add(NewBinding("Text",Me._listOfItems,"SelectedItem.Comment",True,DataSourceUpdateMode.OnPropertyChanged))Me.MyListBox.DataSource=Me._listOfItems这不起作用。但是当我绑定到SelectedValue而不是SelectedItem时,它工作得很好。_listOfItems声明为:Dim_listOfItemsAsList(OfMyItem)=NewList(OfMyItem)()MyItem是这样的:publicclassMyItem{publicstringSelectionName{get;放;}publicintId{得到;放;}publicstringComment{get;放;我尝试覆盖MyItem的ToString()以便它可以使用它。但这也不管用。有人想试一试吗?谢谢!-Snakiej我认为最简单的方法之一是使用BindingSource,在设计时将其设置为BindingSource的ListBox.DataSource属性。删除窗体上的BindingSource;将ListBox.DataSource属性设置为BindingSource;像实际一样设置您的ValueMember和DisplayMember属性;使用MyItem.Comment属性为TextBox控件创建一个DataBinding,并使用BindingSource作为源;将List(OfMyItem)``设置为您的Binding.DataSource`属性;TextBox应该遵循CurrencyManager.CurrentItem的Comment属性,这是当前的ListBox.SelectedItem。事实上,您可能需要实现INotifyPropertyChanged接口才能使其工作。但是,如果这一切都与SelectValue完美配合,为什么不使用它呢?以上就是C#学习教程分享的全部内容:Winforms、数据绑定、列表框和文本框。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
