2013-07-06 117 views
2

我是MVVM的新手,請原諒我的白癡。MVVM WPF:從ViewModel獲取usercontrol名稱

我有一個網格包含6個自定義用戶控件的實例。

userCtrl1, userCtrl2, userCtrl3, userCtrl4, 等..

我創建了一個名爲 'playerInfo' 一個ViewModel類,並設置用戶控件的DataContext的。

我的問題是如何引用viewmodel中的名稱。

我需要獲取索引(userCtrl「4」)來引用我正在使用的第三方庫中的列表。

聽起來很奇怪,我不知道這是否違反了MVVM模式。

非常感謝先進!

+1

要保留在MVVM中,在Xaml中,您可以使用雙向綁定將標籤綁定到屬性,並且在您的虛擬機中可以逐漸填充它。或者,也可以在用戶控件中使用附加屬性。有兩種選擇... –

回答

2

替代溶液(如果「索引引用列表」等於userCtrl#數量和佈局並不過於複雜):

  1. 創建視圖模型的ObservableCollection<PlayerInfo> Players屬性。
  2. ItemsControl放入您的視圖並綁定到Players。如果您想自定義佈局,則可以更改其ItemsPanel模板。
  3. 創建DataTemplate並將其DataType設置爲{x:Type PlayerInfo}。將您的用戶控件放入它並綁定到{Binding}
  4. 當您在視圖模型中需要索引時,可以使用Players.IndexOf方法。
相關問題