繁体   English   中英

取消条目的更改 Xamarin Forms

[英]Cancel the change of an entry Xamarin Forms

如何取消或删除条目值的更改?

在此处输入图片说明

在此处输入图片说明

您可以绑定您的条目文本并在您的视图模型中创建该属性,然后:

  1. 将该条目的默认值指定为数据库存储值
  2. 在保存按钮单击更新数据库存储的值与条目的当前值(即绑定文本)
    因此,每当您再次导航到该页面时,它都会将条目值显示为数据库中最后存储的值,请确保使用 INotifyPropertychanged 来更新值。

有很多可能性

如果输入了意外字符,您可以使用TextChanged事件回滚值(或空条目或其他内容)

Completed ,当用户按下Enter键(或确定或移动的回报),那么你可以做一切与入门

Unfocused也可以以同样的方式提供帮助。

根据您希望与用户交互的方式,您可以实现这三种方式之一。

这是一个使用TextChanged的示例,我希望用户最多写入 20 个字符,当字符超过 20 个时,我将回滚到预览值。

bool IsEditing = false;
private void OnEntryTextChanged(object sender, TextChangedEventArgs e)
{
    var entry = (Entry)sender;
    if (IsEditing || string.IsNullOrEmpty(entry.Text))
        return;
    IsEditing = true;
    if (entry.Text.Length > 20)
    {
        entry.Text = e.OldTextValue;
    }
    IsEditing = false;
}

你的问题没有足够的细节给你一个确切的答案。 但这就是你可以处理它的方式。

  1. 如果您是从后面的代码中执行逻辑,则非常简单。 内容页面有一个消失事件。 您可以覆盖此方法,并将模型设置为 null

     protected override void OnDisappearing () { base.OnDisappearing (); mobileUser = null }
  2. 如果您使用 MVVM 模式并且您从 ViewModel 或其他地方执行逻辑,则事情可能会更复杂一些。 这就是 MVVM 框架派上用场的地方,大多数框架都公开了这些事件,您可以从 ViewModels 中调用它们,或者您可以通过向 ContentPage 添加行为并添加命令来自己完成

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM