我在项目中有一个带有共享选项的集合视图,它按预期工作。但是,它通过再次调用 OnAppearing 事件来刷新页面。这导致具有如此多项目的集合视图刷新并丢失状态。
await Share.RequestAsync(new ShareTextRequest
{
Text = message,
Title = title
});
我在项目中有一个带有共享选项的集合视图,它按预期工作。但是,它通过再次调用 OnAppearing 事件来刷新页面。这导致具有如此多项目的集合视图刷新并丢失状态。
await Share.RequestAsync(new ShareTextRequest
{
Text = message,
Title = title
});
这导致具有如此多项目的集合视图刷新并丢失状态。
ItemsSource
您可以为CollectionView绑定 ViewModel ,并且 ViewModel 和 Model 继承自INotifyPropertyChanged
. 然后当 ViewModel 的属性发生变化时,它将与 UI 交互。
例如:
public class ShareItem: INotifyPropertyChanged
{
private string text,title;
public string Text
{
set
{
if (text != value)
{
text = value;
OnPropertyChanged("Text");
}
}
get
{
return text;
}
}
public string Title
{
set
{
if (title != value)
{
title = value;
OnPropertyChanged("Title");
}
}
get
{
return title;
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
现在当属性改变时,它会更新 ViewModel 的数据。您将不需要调用OnAppearing
方法。
请参阅交互式 MVVM。