ノート
私は新人です。私は単純な考えやばかげた考えに行き詰まることがあります。これはその 1 つです。
私はデータバインディングの一般的な考え方を理解しています。ネット上のいくつかのチュートリアルを読み、大量のテキストを数時間グーグル検索しましたが、少し混乱しただけでした。
問題
私は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 は別の方法で使用される可能性がある、または使用する必要があると聞いたことがあります。バインド元のシングルトンのようなクラスを 1 つ持つのではなく、ページごとに ViewModel を作成する必要があります。検討の結果、今のようにさせていただくことにしました。
私が今やりたいことは、
viewModel
作成したソース/データ コンテキストを XAML でバインドするように設定することです。
質問
これを達成する方法は?
itemSource
listBox/longListSelector またはText
textBox の を、たとえばPersonalInfoModel
内の値に設定したい場合MainViewModel
、どのようにすればよいですか?
PS: 質問冒頭の注意書きにある通り、私は新人です。私たちにとっては難しいこともあることは知っていますが、偉大な思想家は誰も偉大な空虚から生まれたわけではありません。そのため、より詳細な説明を求めています。 "。