private void Parent_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName.Equals(DocumentsList.IsLongPressEnabledProperty.PropertyName)) { MultiGesturesEffect.SetLongPressedCommand(MainItemGrid, (Parent.IsLongPressEnabled) ? ItemLongPressedCommand : null); } }
public DocumentItem(DocumentsList parent, DocumentItemData itemData) { Parent = parent; ItemData = itemData; Parent.PropertyChanged += Parent_PropertyChanged; ItemLongPressedCommand = new Command(execute: (e) => { DocumentItemData currentItemData = e as DocumentItemData; Parent.OnItemLongPressed(currentItemData); }); ItemTappedCommand = new Command(execute: (e) => { DocumentItemData currentItemData = e as DocumentItemData; // Change item selection state/color if (currentItemData != null && Parent.SelectionMode != SelectionMode.None) { if (Parent.SelectionMode == SelectionMode.Single) { ObservableCollection <DocumentItemData> items = Parent.ItemsSource; var selectedItems = items.Where(item => item.IsSelected); if (selectedItems != null && selectedItems.Count() > 0) { // Unselect all other items foreach (DocumentItemData item in selectedItems) { if (item != currentItemData) { item.IsSelected = false; } } } } currentItemData.IsSelected = !currentItemData.IsSelected; } // Fire ItemTapped event Parent.OnItemTapped(currentItemData); }); // Initialize InitializeComponent(); MultiGesturesEffect.SetLongPressedCommand(MainItemGrid, (Parent.IsLongPressEnabled) ? ItemLongPressedCommand : null); }