「空のアプリ」(Visual C#、Windows ストア) で、新しい「グループ化されたアイテム ページ」を作成MyItemViewModel
しDependencyObject
、String Title
.
これは、ページの LoadState メソッドです。
protected async override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
this.DefaultViewModel["Groups"] = this.items;
this.items.Add(new MyItemViewModel { Title = "My Title" });
for (int i = 0; i < 5; i++)
{
await Task.Delay(1000);
this.items.First().Title += ".";
}
}
アイテムのタイトルの後に毎秒ドットが表示されることが期待されます。実際の出力は単に「My Title」で、それ以外は何も起こりません。
次の参照されていない依存関係プロパティを追加すると、ドットが表示されます。
public MyItemViewModel blah
{
get { return (MyItemViewModel)GetValue(blahProperty); }
set { SetValue(blahProperty, value); }
}
public static readonly DependencyProperty blahProperty =
DependencyProperty.Register("blah", typeof(MyItemViewModel), typeof(GroupedItemsPage1), new PropertyMetadata(0));
同じ型の未使用の依存関係プロパティがある場合、GridView がアイテム ビュー モデルの Title プロパティのみを更新するのはなぜですか?
ビュー モデル クラスは常に、アプリのどこかで少なくとも 1 回は依存関係プロパティとして明示的に宣言する必要がありますか?