5
我在我的屏幕上有一个列表框(MyListBox
)和一个文本框(MyTextBox
)。Winforms,数据绑定,列表框和文本框
ListBox中充满了List(Of T),这些都是自定义项目。
现在我试着这样做:
的ListBox的数据源是List(Of T)已。
现在,当一个项目的变化,我希望文本框被更新到我的列表框中选定的项目的特定属性。
在代码中,这意味着:
Me.MyListBox.DisplayMember = "SelectionName"
Me.MyListBox.ValueMember = "Id"
MyTextbox.DataBindings.Add(New Binding("Text", Me._listOfItems, "SelectedItem.Comment", True, DataSourceUpdateMode.OnPropertyChanged))
Me.MyListBox.DataSource = Me._listOfItems
这不起作用。但是当我绑定到SelectedValue而不是SelectedItem时,它可以很好地工作。
的_listOfItems
被声明为这样的:
Dim _listOfItems As List(Of MyItem) = New List(Of MyItem)()
哪里MyItem
是这样的:
public class MyItem
{
public string SelectionName { get; set; }
public int Id { get; set; }
public string Comment { get; set; }
}
我试图重写ToString()
在MyItem
,这样它会利用这一点。但那也行不通。
有人在乎试试看吗?
谢谢!
-Snakiej
SelectedValue是Id,我需要评论。我不能用它来调用数据库:)我会尝试你的解决方案! – Snake 2010-05-25 13:05:13
我懂了!你是对的,如果你想要给用户提供一个选择选择,我们不要用Id来做。= P – 2010-05-25 13:06:44
选项5不需要:)和选项4:我使用此绑定: 新的绑定(“Text”,bindingSource1,“Comment”,...),因为它已经使用bindingSource的.Current属性! 谢谢! – Snake 2010-05-25 13:13:07