从MainPage.cs访问(绑定)ObservableCollection的多个页面

时间:2013-08-01 18:08:23

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

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

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

现在,我想如果我制作了ObsCollection public _static_,我就可以从XAML的Page2页面绑定它,但我错了。我该怎么做?

的MainPage:

<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}" />

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

1 个答案:

答案 0 :(得分:1)

你应该使用Mvvm。尝试检查Mvvm Light,因为它很容易实现。

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