【问题标题】:Multiple pages accessing (binding) ObservableCollection from MainPage.cs从 MainPage.cs 访问(绑定)ObservableCollection 的多个页面
【发布时间】:2013-08-01 18:08:22
【问题描述】:

我的 Windows 应用商店应用中有一些页面,在 MainPage.xaml 中有一个 GridView,它绑定到 MainPage.xaml.cs 中的 ObservableCollection。

我还需要在其他页面上有一个 GridView,例如 Page2.xaml,它绑定到位于 MainPage.xaml.cs 中的 ObservableCollection。

现在,我认为如果我创建了 ObsCollection public _static_,我就可以从我的 Page2 页面在 XAML 中绑定到它,但我错了。我该怎么做?

主页:

<TextBlock x:Name="text" Text="{Binding MyClass}" />

MainPage.xaml.cs:

public static ObservableCollection<MyClass> ObsCollection = new ObservableCollection<MyClass>();

为了让它发挥作用,我尝试过: Page2.xaml:

<TextBlock x:Name="textBlock" Text="{Binding MainPage.MyClass}" />

但这没有用。我怎样才能做到这一点?

【问题讨论】:

    标签: c# .net xaml microsoft-metro windows-store-apps


    【解决方案1】:

    您应该使用 Mvvm。试试看 Mvvm Light,因为它很容易实现。

    基本上,您将所有数据(在“Model-View-ViewModel”设计中描述为“Model”,缩写为 Mvvm)放入“ViewModel”对象中。在这种情况下,您的ObservableCollection。然后你的所有页面都直接绑定到你的 ViewModel 中。 Mvvm 创建了一个静态的“ViewModelLocator”,它允许你设置所有绑定的源,并让它很容易地工作。

    【讨论】:

      猜你喜欢
      • 2012-10-23
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 1970-01-01
      • 1970-01-01
      • 2016-02-21
      • 2022-11-12
      • 1970-01-01
      相关资源
      最近更新 更多