笔记
我是一个菜鸟,我有时会陷入简单和/或愚蠢的想法,这就是其中之一。
我对数据绑定有了大致的了解,我已经阅读了网上的一些教程,并在谷歌上搜索了几个小时,通过大量的文本,这只让我有点困惑。
问题
我正在使用Windows Phone 8 C#/XAML .NET 4.5 Application。
使用通过几种方法提供给我的 Web 服务,我正在加载我需要查看的数据(有时以不同的组合),并且我需要在应用程序运行时存储其中的大部分。
为此,我创建了一个ViewModel + 几个模型并像这样构建它们:
MainViewModel -------------- | + several properties (Username, Password, etc...) | + Commands (loadData1, loadData2, flush, ... - implementations of ICommand) | + ------ PersonalInfoModel | ----------------- | + several properties (name, surname, phonenumber, etc...) | | + ------ DataGroup1Model | --------------- | +several properties | +ObservableCollection<Item1> (roughly 0 - 50 items) | +ObservableCollection<Item2> (roughly 0 - 5 items) | +ObservableCollection<string> (roughly 0 - 5 items) | | Item1 Item2 | ----- ----- | +several properties +several other properties | | + ------ DataGroup2Model (similar to previous) ...et cetera...
ViewModel 不会立即填充(因为它不能),而是在用户浏览应用程序并指定他想要加载的数据时将数据加载到其中(这主要基于一些时间跨度和/或其他标准)。
我在App.xaml.cs中创建了MainViewModel ,如下所示:
private static MainViewModel viewModel = null; public static MainViewModel ViewModel { get { if (viewModel == null) { viewModel = new MainViewModel(); } return viewModel; } }
注意:从一些人那里我听说 MVVM 可能/应该以不同的方式使用,我应该为每个页面创建一个 ViewModel,而不是使用一个类似单例的类来绑定。经过考虑,我决定让它就像我现在拥有它一样。
我现在想做的是将
viewModel
我创建的源/数据上下文设置为在 XAML 中绑定
问题
如何做到这一点?
如果我想将
itemSource
一个 listBox/longListSelector 或 textBox 设置Text
为例如PersonalInfoModel
在里面的值MainViewModel
,我应该怎么做?
PS:正如问题开头的注释中所写,我是菜鸟。我知道有时对我们来说很难,但没有一个伟大的思想家只是从巨大的虚空中产生的,这就是为什么我要求更详细的解释,然后只是“你应该在窗口中将你的对象设置为数据源,然后设置这个”。