xamarin - Xamarin 共享正在触发 OnAppearing 事件
问题描述
我在项目中有一个带有共享选项的集合视图,它按预期工作。但是,它通过再次调用 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。
推荐阅读
- javascript - 反应钩子没有从库事件(FabricJS)的回调函数中返回更新的状态值
- python-3.x - pyodbc.Error: ('HY000', '[HY000] [Teradata][ODBC] (11560) 无法找到 SQLGetPrivateProfileString 函数。(11560) (SQLDriverConnect)')
- sql - 如何通过注册服务器/服务器组查询多个服务器?
- python - 使用 selenium 在 LinkedIn 上抓取个人资料网址
- wordpress - Wordpress 上的 XML 站点地图错误 - “第 10 行第 61 列的错误:开始和结束标记不匹配:html 第 0 行和 loc”
- xml - xpath 中的否定 - 随之而来的是欢闹
- javascript - NodeMailer net::ERROR_CONNECTION_RESET 400 尝试发送 DataUri 附件时
- firebase - Flutter 中的 Firebase 子集合文档
- r - 使用 roxygen2 忽略脚本
- docker - Drone CI,未终止的引号字符串