2011-03-13 145 views
0

我已經完成了一些簡單的MVVM教程,但它們都是超級簡化的示例。 這是我的問題:我有一個人的模型類,其中包含一些變量(名字,姓氏)和列表(教育,工作場所)。這些列表有他們自己的類。對於簡單的變量,我創建了一個實現INotifyPropertyChanged接口的視圖模型,一切工作都很好。 但是我不知道如何處理列表。他們應該有獨立的視角模型嗎?或者我如何將這些添加到現有的ViewModel?Silverlight MVVM問題

提前致謝!

回答

2

如果您需要對這些集合的元素進行更多操作,那麼您可以爲這些類創建單獨的ViewModel。然後在一般ViewModel中,您可以創建其他ViewModels的ObservableCollection。

僞代碼:

public class PersonViewModel 
{ 
    public ObservableCollection<EducationViewModel> Education { get; set; } 
    public ObservableCollection<WorkplaceViewModel> Workplaces { get; set; } 
} 
+0

謝謝,我會盡量做到這樣。 – npalotai 2011-03-13 15:01:32

+0

我很高興我可以幫你:) – 2011-03-14 06:44:52

+0

這個工程。 :)我將教育集合綁定到我的列表框的ItemSource,然後將其Name屬性綁定到數據模板中的文本框。我想通過綁定來控制文本框isReadOnly屬性。這應該在哪裏實施?我爲EducationViewModel添加了一個可編輯的bool屬性,我不確定這是否是最優雅的方式。 – npalotai 2011-03-15 13:19:02

0

如果視圖呈現的是事物的列表,那麼以Collection作爲競爭模型對我來說就沒有問題了。可能需要通過執行INotifyCollectionChanged或從ObservableCollection<>獲得「Observable」集合。

0

對於初學者,在您的ViewModel上實施列表ObservableCollection可以正常工作。有一個example on MSDN讓你開始;還有大量的教程。