首页 文章

Xamarin ListView BindingContext项更改时的事件

提问于
浏览
0

当绑定到Xamarin Forms列表视图的集合中的项目发生更改时,是否可以获取事件?例如,我的对象有一个Date字段,它绑定到ViewCell中的标签 . 我希望在更改日期时触发事件 . 我们的对象实现了INotifyPropertyChanged,因此listview可以正确更新 . 我可以手动订阅每个项目的OnPropertyChanged事件,但我希望他们是一个更简单的方法 .

谢谢 .

1 回答

  • 0

    Xamarin.Forms中有触发器 . 看起来事件触发器可以满足您的需求 . 例如:

    <EventTrigger Event="TextChanged">
        <local:NumericValidationTriggerAction />
    </EventTrigger>
    
    public class NumericValidationTriggerAction : TriggerAction<Entry>
    {
        protected override void Invoke (Entry entry)
        {
            double result;
            bool isValid = Double.TryParse (entry.Text, out result);
            entry.TextColor = isValid ? Color.Default : Color.Red;
        }
    }
    

    您可以找到有关触发器的更多信息here

    从列表视图中选择对象时,请参阅此示例以删除对象 .

    private MyItemsViewModel _myItemsViewModel;
    
    private void MyItemsListView_ItemSelected(object sender,    SelectedItemChangedEventArgs e)
    {
        MyItem item = (MyItem)e.SelectedItem;
    
        if (item == null)
            return;
    
        // remove the item from the ObservableCollection
        _myItemsViewModel.Items.Remove(item);
    }
    

相关问题