2010-07-01 76 views
0

我想使用MVVM光來實現這樣的事情。我有以下場景:List <>綁定和按鈕點擊使用mvvm光

在我的模型 - 我已經設置了像ActivityName,Image這樣的屬性,並且有一個類構造函數,它接受2個參數,如名稱和圖像。

我的數據訪問 - 我已經設置了數據庫連接並實現了將從數據庫中獲取數據的所需方法,並且我將其存儲在列表中並將列表返回給ViewModel。

在我的ViewModel中 - 我創建了list屬性,它將通過調用我在DataAccess中定義的GetActivities()方法來返回列表。

現在我的問題是我沒有得到如何將它綁定在視圖中,以便通過單擊按鈕它將顯示圖像的活動列表。通過點擊某個按鈕,新窗口應打開並顯示所需的結果。如何綁定上述列表並使用MVVM light實現按鈕功能。

請幫忙嗎?

感謝

+0

你在視圖中有什麼控制權? – Ragunathan 2010-07-01 05:20:12

+0

我有datagrid來顯示圖像及其相應的活動 – Tarun 2010-07-01 06:06:35

回答

2
  • 首先的,使用一個ObservableCollection而不是列表,因爲它會通知當視圖屬性或集合的變化。
  • 然後將視圖的DataContext設置爲viewmodel。如果你使用MVVMLight View Class,那麼DataContext會自動設置。你必須在那裏給ViewModel名稱。
  • 然後將DataGrid的ItemsSource時這樣<dg:DataGrid ItemsSource="{Binding YourListInViewModel}"/>
  • 爲了處理您可以使用事件到命令的行爲和按鈕的相應的命令處理程序編寫邏輯click事件。
+0

你的意思是說我必須在Data Aceess中使用ObservableCollection,而在存儲和查看模型時返回?請建議? – Tarun 2010-07-01 08:42:16

+0

您需要在虛擬機中創建一個ObservableCollection。如果GetActivities()返回一個列表,然後像這樣創建一個OC,就像這個'Ob​​servableCollection a = new ObservableCollection(GetActivities());'。但是我建議你創建一個'GetActivities()'方法,它會返回一個'IEnumerable',因爲它會避免兩次複製:一個從數據庫到列表,然後到OC。 – Amsakanna 2010-07-01 10:01:14

+0

謝謝。我會試試看,讓你知道 – Tarun 2010-07-01 12:41:13