下拉刷新时如何清除输入文本?

时间:2018-05-25 11:30:59

标签: xamarin.forms

我在页面顶部有一个条目,下面有一个列表视图。在进行下拉刷新时,我想清除该条目上的文本。

以下是我的输入代码:

<Entry 
    x:Name="SearchEntry"
    HorizontalOptions="FillAndExpand"
    VerticalOptions="Center"
    PlaceholderColor="Black"
    FontFamily="Bold"
    TextColor="Black"
    Placeholder="Search a Directory"/>

提前致谢

2 个答案:

答案 0 :(得分:2)

我假设您使用MVVM并拥有ViewModel 创建并绑定从ViewModelEntry.Text的字符串类型的属性。内部刷新方法将此属性设置为nullstring.Empty

示例:

class MyViewModel : INotifyPropertyChanged
{
    // TODO: Handle INotifyPropertyChanged correctly
    public string EntryTextProp { get; set; }

    public async Task<?> UpdateList()
    {
        // ...
        EntryTextProp = null;
        // ...
    }
}

<Entry 
    x:Name="SearchEntry"
    Text="{Binding EntryTextProp}"
    HorizontalOptions="FillAndExpand"
    VerticalOptions="Center"
    PlaceholderColor="Black"
    FontFamily="Bold"
    TextColor="Black"
    Placeholder="Search a Directory"/>

答案 1 :(得分:0)

在此处更新完整代码,这可能有助于其他人。

class MyViewModel : INotifyPropertyChanged
{
    string _entrytext = "";
    public string EntryText
    {
        protected set
        {
            if (_entrytext != value)
            {
                _entrytext = value;
                OnPropertyChanged("EntryText");
            }
        }
        get { return _entrytext; }
    }

    public ICommand RefreshCommand
    {
        get
        {
            return new Command(async () =>
            {
                IsRefreshing = true;
                EntryText = null;
                MyList();
                IsRefreshing = false;
            });
        }
    }
}



  <Entry 
    x:Name="SearchEntry"
    Text="{Binding EntryTextProp}"
    HorizontalOptions="FillAndExpand"
    VerticalOptions="Center"
    PlaceholderColor="Black"
    FontFamily="Bold"
    TextColor="Black"
    Placeholder="Search a Directory"/>