2012-09-07 47 views
1

组合框的数据绑定我最近从Visual Basic 5切换到Visual Basic .NET和我想学习WPF将从Windows窗体的旧方案,WPF & VB.NET(采用visual basic 5书面)。有多个来源

在旧程序我有从接入数据库加载信息的组合框(一个简单的表与ITEM_ID和ITEM_DESCRIPTION)。单击组合框中的项目会导致该id被保存在一个类中(将其信息保存在数据库的不同表中)

现在我试图在WPF中重新创建相同的东西。

我想知道是否可能让组合框显示项目列表中的项目,将其itemsource绑定到项目列表viewmodel,但更改所选项目时更新另一个viewmodel。

我不知道这是否是可行的(我老实说,我试图找到在web的答案,但寻找“组合框多个数据绑定”我最终找到的信息不帮我)

回答

1

不知道我是否真的明白你的意思,但你可以设置一个itemsource,它将是组合框的内容。也可以将组合框的选定值绑定到另一个属性。

<ComboBox ItemSource="ListItems" SelectedValuePath="item_id" SelectedValue={Binding IdSelected} DisplayMemberPath="item_description"/> 

在本例,listItems中会包含项目的列表,SelectedValuePAth将是将组合框SelectedValue属性返回的属性的名称。 SelectedValue绑定到需要此信息的其他某个对象的属性。 DisplayMemberPath是将显示给用户的属性。

您可以通过使用CboItem.Itemssource =的listItem,它可以是相当的任何类型的集合(列表,集,阵列等)

希望帮助在运行时设置的ItemsSource。

+0

是的,你得到了我的问题......,但我不知道在哪里指定IdSelected属于...(代码中使用CboItem.itemssource =的listItem的对象是与使用的ItemSource =“时listItems “在XAML中,不是吗?) – doGmaI

+0

IdSelected将来自您希望使用的其他对象。除非我更了解你在做什么,否则我不能直接帮你。但是,我很确定网络上有很好的turotials。也许WPFTutorial有一些很好的信息。 –

+0

我的错误是由于一个“奇怪的想法”:我认为itemssource必须是来自同一个对象的集合,我想存储选定的id。我遇到了问题,因为我总是试图将2 viewModel关联到同一个组合框。现在,我已将viewModel正确地关联到组合框的DataContext(将SelectedValue绑定到正确的属性),并将items的一个简单集合作为itemsSource。感谢您的建议 – doGmaI