c# - MVVM WPF : Get usercontrol name from ViewModel

标签 c# wpf mvvm reference viewmodel

我是 MVVM 新手,所以请原谅我的白痴。

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

用户Ctrl1, 用户Ctrl2, 用户Ctrl3, 用户Ctrl4, 等等..

我创建了一个名为“playerInfo”的 viewModel 类并设置了用户控件的数据上下文。

我的问题是如何在 View 模型中引用该名称。

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

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

非常感谢!

最佳答案

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

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

关于c# - MVVM WPF : Get usercontrol name from ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17506122/

相关文章:

c# - 验证站点/应用程序以访问 Web API 服务

c# - 更高效地将 WinForms 转换为 WPF 或将 WPF 转换为 Winforms

wpf - 对多个文本框重复使用工具提示

c# - 使用 Caliburn Micro 将 WebView2 绑定(bind)到 ViewModel

javascript - 如何在RadGrid的编辑表单中ajaxify控件

C# DateTime TimeSpan 持续时间?

c# - WPF 窗口不可点击

javascript - 数据绑定(bind)不适用于 View 模型

windows-phone-8 - Caliburn Micro和麦克风NullReferenceException

c# - 系统.IO.IOException : The process cannot access the file because it is being used by another process