MVVM WPF:从ViewModel获取usercontrol名称

时间:2013-07-06 19:03:00

标签: c# wpf mvvm reference viewmodel

我是MVVM的新手所以请原谅我的愚蠢。

我有一个包含6个自定义用户控件实例的网格。

userCtrl1, userCtrl2, userCtrl3, userCtrl4, 等等..

我创建了一个名为'playerInfo'的viewModel类,并设置了usercontrol的datacontext。

我的问题是如何在viewmodel中引用该名称。

我需要获取索引(userCtrl“4”)来引用我正在使用的第三方库中的列表。

听起来很奇怪,我不知道这是否违反了MVVM模式。

非常感谢先进!

1 个答案:

答案 0 :(得分:2)

替代解决方案(如果“引用列表的索引”等于userCtrl#number并且布局不太复杂):

  1. 在视图模型中创建ObservableCollection<PlayerInfo> Players属性。
  2. ItemsControl放入您的视图并绑定到Players。如果要自定义布局,可以更改其ItemsPanel模板。
  3. 创建DataTemplate并将其DataType设置为{x:Type PlayerInfo}。将您的用户控件放入其中并绑定到{Binding}
  4. 如果您需要在视图模型中使用索引,则可以使用Players.IndexOf方法。