Xamarin.Forms.EntryCell:如何在输入任何键时触发事件

时间:2019-03-01 09:52:27

标签: xamarin.forms

我对Xamarin.Forms.EntryCell有问题。我想知道如果EntryCell的文本已更改时如何触发事件。不是事件“已完成”,它只是在输入任何内容后按 Enter 时触发的。

<EntryCell 
    Label="User Id" 
    x:Name="UserIdEntryCell" 
    HorizontalTextAlignment="End" 
    Completed="UserIdCompleted"/>

1 个答案:

答案 0 :(得分:0)

很显然,更改文本(see the docs)时不会触发任何事件。无论如何,这并不意味着您无法通过Text属性来实现所需的目标。由于您使用的是事件,因此我不认为您使用的是MVVM(不过,您确实应该尝试一下),因此,我们必须创建一个属性,将EntryCell.Text绑定到您的视图中(是假设一个视图,但是对于一个页面来说,它会非常相似)

在后面的代码中添加一个属性Text,该属性会从其设置程序中调用HandleTextChanged

class MyView : ContentView
{
    string _text;

    public string Text
    {
        get => _text;
        set
        {
            _text = value;
            HandleTextChanged();
        }
    }

    private void HandleTextChange()
    {
        // do whatever you need to do
    }

}

您可以将此属性从XAML绑定到EntryCell.Text

         

现在MyView.Text的每次更改都会设置EntryCell