在“空白应用程序”(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 += ".";
}
}
期望是每秒钟在项目的标题之后出现点。实际输出只是“我的标题”,没有其他任何事情发生。
通过添加以下未引用的依赖属性,点将出现:
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只有在有同类型的未使用依赖属性时才刷新item view model的Title属性?
视图模型类是否总是必须在应用程序的某处至少显式声明为依赖属性一次?