private void HandleCollapse(ExpandableViewCustom collapsingView) { foreach (var view in _expandableViews) { view.IsTouchToExpandEnabled = true; } }
private async Task HandleExpend(ExpandableViewCustom expendingView) { if (_mutex.WaitOne(0)) { foreach (var view in _expandableViews.Where(view => view != expendingView)) { view.IsExpanded = false; view.IsTouchToExpandEnabled = false; // Prevent expend while we are } if (!expendingView.IsTouchToExpandEnabled) { await Task.Delay((int)(expendingView.ExpandAnimationLength * 1.3)); expendingView.IsTouchToExpandEnabled = true; expendingView.IsExpanded = true; } _updateCommands[expendingView]?.Execute(this); _mutex.ReleaseMutex(); } }