c# – 如何在Windows8应用程序中刷新页面和内容
作者:互联网
所以我有一个Windows 8应用程序,我在其中设置一些数据到defaultViewModel.我的问题是,在页面创建之后,我向数据添加了一些内容,如何刷新页面并显示所做的更改?
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
//inital load
var DataGroups = SampleDataSource.GetGroups((String)navigationParameter);
this.DefaultViewModel["Items"] = DataGroups;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
//when the page is navigated back to after making changes to sampledatasource
base.OnNavigatedTo(e);
this.DefaultViewModel.Clear();
var DataGroups = SampleDataSource.GetGroups("AllGroups");
this.DefaultViewModel["Items"] = DataGroups;
}
在下次打开应用程序并重新加载页面时,我所做的更改不会反映出来.
这是视图模型:
protected IObservableMap<String, Object> DefaultViewModel
{
get
{
return this.GetValue(DefaultViewModelProperty) as IObservableMap<String, Object>;
}
set
{
this.SetValue(DefaultViewModelProperty, value);
}
}
这是我想要更新的列表视图:
<ListView
x:Name="itemListView"
AutomationProperties.AutomationId="ItemsListView"
AutomationProperties.Name="Items"
TabIndex="1"
Grid.Row="1"
Visibility="Collapsed"
Margin="0,-10,0,0"
Padding="10,0,0,60"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
ItemTemplate="{StaticResource Standard80ItemTemplate}"
SelectionMode="None"
IsSwipeEnabled="false"
IsItemClickEnabled="True"
ItemClick="ItemView_ItemClick"/>
与此相关:
<CollectionViewSource
x:Name="itemsViewSource"
Source="{Binding Items}"
d:Source="{Binding AllGroups[0].Items, Source={d:DesignInstance Type=data:SampleDataSource, IsDesignTimeCreatable=True}}"/>
msdn功能:
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this,
new PropertyChangedEventArgs(propertyName));
}
}
解决方法:
查看BindableBase类代码,如果使用模板(Blank App模板除外),通常会在Windows 8 Store项目的Common文件夹中创建该类代码.如果您的起点是空白应用程序模板,则可以创建新的BasicPage,Visual Studio将询问您是否要包含公用文件.
基本上,这个想法是这样的:
>您实现了INotifyPropertyChanged接口
>创建自定义PropertyChanged事件
>在为属性设置新值后,您将调用this.OnPropertyChanged(propertyName),它将为该属性发出change事件.然后将通知控件属性已更改,并将使用新值自动更新.
标签:c,windows-8,page-refresh 来源: https://codeday.me/bug/20190625/1288148.html