取消更改条目Xamarin表单

时间:2018-04-02 14:01:04

标签: c# xaml xamarin xamarin.forms textchanged

如何取消或删除条目值的更改? 请帮忙。 在此处输入图像描述enter image description here

enter image description here

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

有很多种可能性

如果输入了意外字符,您可以使用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;
}

答案 2 :(得分:0)

您的问题中没有足够的详细信息可以给您一个确切的答案。但这就是你如何处理它。

  1. 如果你从背后的代码中做逻辑,那很简单。内容页面有一个消失的事件。您可以覆盖此方法,并将Model设置为null

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