【问题标题】:MVVM WPF: Get usercontrol name from ViewModelMVVM WPF:从 ViewModel 获取用户控件名称
【发布时间】:2013-07-04 13:47:10
【问题描述】:

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

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

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

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

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

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

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

非常感谢您!

【问题讨论】:

  • 要保留在 MVVM 中,在 Xaml 中,您可以将标记绑定到具有双向绑定的属性,并且在您的 VM 中,您可以增量填充它。或者在您的用户控件中使用附加属性。有两种选择...

标签: c# wpf mvvm reference viewmodel


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 2011-07-17
    • 2011-06-28
    • 2016-08-29
    • 1970-01-01
    • 2011-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    相关资源
    最近更新 更多