2012-09-07 81 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