Windows 8的问题(为什么App.Current.Resources?为什么要使用GridView项目?)

时间:2013-01-23 23:55:11

标签: c# windows-8

我有两个关于我正在经历的a tutorial的问题。

Q1。

通过教程,他们使用数据源

  

使用应用中的数据

     

要使用应用程序中的数据,您需要创建数据源的实例   作为App.xaml中的资源。您将实例命名为feedDataSource。

     

BR211380.wedge(zh-cn,WIN.10).gif要向应用添加资源

Double-click App.xaml in Solution Explorer. The file opens in the XAML editor.
Add the resource declaration, <local:FeedDataSource x:Key="feedDataSource"/>, to the root ResourceDictionary, after the
MergedDictionaries collection.

然后他们在OnLaunch方法中使用它。

 var connectionProfile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();
 if (connectionProfile != null)
 {
     FeedDataSource feedDataSource = (FeedDataSource)App.Current.Resources["feedDataSource"];
     if (feedDataSource != null)
     {
         if (feedDataSource.Feeds.Count == 0)
         {
             await feedDataSource.GetFeedsAsync();
         }
     }
 }

我想知道为什么他们将它存储在资源中? Wy不只是创建一个类的实例并从中获得结果吗?

Q2。

在文章的后面,他们将这些数据源项目与“网格视图项目”一起使用。我在其他模板项目中看到了这一点。我想知道是否有制作界面的标准方法?

起初我觉得可能只是在屏幕上放下一些图像按钮并挂钩他们的点击事件,但现在我不确定。

1 个答案:

答案 0 :(得分:0)

XAML Resource实际上为您创建了一个实例,并使其在Resources集合中可用,因此您可以自己实例化该类。将其作为资源保留此对象并使其可以在应用程序的各个页面中访问。你当然可以明确地创建类,如果你在它上强制执行单例模式,它在语义上是等价的。

我不确定在教程中是否看到了第二个问题的上下文,但总的来说,您看到的模式是Model-View-ViewModel (MVVM),这是Windows应用商店应用的事实标准模式。 feedDataSource提供的模型及其部分分配给DefaultViewModel,这是XAML页面中所有绑定标记的DataContext,即视图。这背后的想法是将您的数据与模型分开,这样当您执行诸如加载新数据源等操作时,您需要做的就是更改数据源,并且所有数据绑定标记将自动反映用户界面中的新数据。

如果您发现自己编写的代码看起来像TextBox.Text =“我的文字”,那么您就会偏离模式。