public CNTask AddOrUpdateMemo(CNMemo newMemo) { if (Memos.Exists(r => r.MemoId == newMemo.MemoId)) { Memos[Memos.FindIndex(x => x.MemoId == newMemo.MemoId)] = newMemo; } else { Memos.Add(newMemo); } return(this); }
// Create a new Memo and stick it onto "ScrollBoard" void StickMemo(object sender, EventArgs args) { Memo NewMemo = new Memo(); // Set the initial position and offsets #if MemoBoardPan NewMemo.Body.TranslationX = memoBoard.Display.X; NewMemo.Body.TranslationY = memoBoard.Display.Y; NewMemo.Offset = new Point() { X = memoBoard.Display.X, Y = memoBoard.Display.Y }; #else NewMemo.Body.TranslationX = ScrollBoard.ScrollX; NewMemo.Body.TranslationY = ScrollBoard.ScrollY; NewMemo.Offset = new Point() { X = ScrollBoard.ScrollX, Y = ScrollBoard.ScrollY }; #endif // Add Tap, Pan, Pinch Gesture Event var tapGesture = new TapGestureRecognizer(); tapGesture.Tapped += OnTapMemo; NewMemo.Body.GestureRecognizers.Add(tapGesture); var panGesture = new PanGestureRecognizer(); panGesture.PanUpdated += OnPanMemo; NewMemo.Body.GestureRecognizers.Add(panGesture); var pinchGesture = new PinchGestureRecognizer(); pinchGesture.PinchUpdated += OnPinchMemo; NewMemo.Body.GestureRecognizers.Add(pinchGesture); // Add Editor Event Editor editor = (Editor)NewMemo.Body.Content; editor.TextChanged += EditorTextChanged; editor.Focused += EditorFocused; editor.Unfocused += EditorUnfocused; // Add this new Memo to the Memos collection // and "MemoBoard" in "ScrollBoard" Memos.Add(NewMemo); MemoBoard.Children.Add(NewMemo.Body); StatusLabel.Text = "Memo Sticked"; }