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

本文关键字:为什么 GridView Resources Current 问题 App Windows | 更新日期: 2023-09-27 17:55:43

关于我正在经历的教程,我有 2 个问题。

问题 1.

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

使用应用程序中的数据

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

BR211380.wedge(en-us,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 不只是创建类的实例并从中获取结果吗?

问题 2.

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

起初我想也许只是在屏幕上放置一些图像按钮并连接他们的点击事件,但现在我不确定。

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

XAML 资源实质上会为你创建一个实例,并使其在资源集合中可用,因此你可以自己实例化该类。 将其作为资源可保留此对象,并使其可跨应用程序的各个页面进行访问。 您当然可以显式创建类,并且如果对其强制执行单例模式,它将在语义上等效。

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

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