コード例 #1
0
 private void Parent_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
 {
     if (e.PropertyName.Equals(DocumentsList.IsLongPressEnabledProperty.PropertyName))
     {
         MultiGesturesEffect.SetLongPressedCommand(MainItemGrid, (Parent.IsLongPressEnabled) ? ItemLongPressedCommand : null);
     }
 }
コード例 #2
0
        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);
        }