【问题标题】:share data between two user control in c# wpf在 c# wpf 中的两个用户控件之间共享数据
【发布时间】:2016-10-01 03:49:52
【问题描述】:

各位,

我有一个包含 2 个用户控件的程序,在 usercontrol1 中有一个 list<object> ListObject,我想在 usercontrol2 后面的代码中获取此列表。我听说过 MVVM 或绑定,但如果有人愿意帮助我并解释最简洁的方法,那就太好了。非常感谢您 :) 我尝试了 Binding,但我不确定如何使用它:

后面的代码:

public List<Conf> listConf;

WPF:

DataContext="{Binding Listconf}"

?

【问题讨论】:

  • "在 usercontrol2 后面的代码中获取这个列表" - 你将如何在 usercontrol2 中使用这个列表,你打算在 UI 上输出它的内容吗?您是否需要在 usercontrol1 中更新此列表并在 usercontrol2 中获取更改通知?

标签: c# wpf mvvm binding user-controls


【解决方案1】:

您可以为这两个控件创建一个公共 ViewModel 类,然后将所有共享数据放入其中并将两个控件的DataContext 绑定到该类。

另外,不要将DataContext 绑定到您的列表。相反,您应该使用ListBoxListView 中的ItemsSource 来执行此操作,无论您使用哪个。

如果您使用MVVM,这就是您应该做的。

【讨论】:

  • 好吧,我对 MVVM 不太熟悉,所以我会通过查看互联网上的一些示例来尝试您所说的,但非常感谢您的提示 :)
  • @Armatita 是否有另一种方法可以做到这一点,或者 MVVM 是最好的方法?
  • "然后将所有共享数据放入其中,并将两个控件的DataContext绑定到该类。"如何将所有共享数据放入viewmodel中?
  • 是的,MVVM 可能是最好的方法。
  • 在您的情况下,将所有共享数据放在视图模型中意味着将您的列表移到那里。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多