当绑定到Xamarin Forms列表视图的集合中的项目发生更改时,是否可以获取事件? 例如,我的对象有一个Date字段,它绑定到ViewCell中的标签。我希望在更改日期时触发事件。我们的对象实现了INotifyPropertyChanged,因此listview可以正确更新。 我可以手动订阅每个项目的OnPropertyChanged事件,但我希望它们更简单。
感谢。
答案 0 :(得分: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);
}