/// <summary> /// Attaches context menu to the specified <see cref="FrameworkElement"/> /// </summary> /// <param name="hudToolViewModel"></param> /// <param name="hudTool"></param> protected virtual void AttachContextMenu(HudBaseToolViewModel hudToolViewModel, FrameworkElement hudTool) { if (hudToolViewModel == null || hudToolViewModel.Parent == null || hudTool == null) { return; } var menuItem = new RadMenuItem(); var binding = new Binding(nameof(HudElementViewModel.NoteMenuItemText)) { Source = hudToolViewModel.Parent, Mode = BindingMode.OneWay }; menuItem.SetBinding(RadMenuItem.HeaderProperty, binding); menuItem.Click += (s, e) => { var playerNoteViewModel = new PlayerNoteViewModel(hudToolViewModel.Parent.PlayerId); var playerNoteView = new PlayerNoteView(playerNoteViewModel); playerNoteView.ShowDialog(); hudToolViewModel.Parent.NoteToolTip = playerNoteViewModel.HasNotes ? playerNoteViewModel.Note : string.Empty; }; var contextMenu = new RadContextMenu(); contextMenu.Items.Add(menuItem); RadContextMenu.SetContextMenu(hudTool, contextMenu); }
public PlayerNoteView(PlayerNoteViewModel viewModel) { InitializeComponent(); this.DataContext = viewModel; viewModel.CloseAction = this.Close; }
private RadContextMenu CreateContextMenu(short pokerSiteId, string playerName, ReplayerPlayerViewModel datacontext) { RadContextMenu radMenu = new RadContextMenu(); var item = new RadMenuItem(); var binding = new Binding(nameof(ReplayerPlayerViewModel.NoteMenuItemText)) { Source = datacontext, Mode = BindingMode.OneWay }; item.SetBinding(HeaderedItemsControl.HeaderProperty, binding); item.Click += (s, e) => { PlayerNoteViewModel viewModel = new PlayerNoteViewModel(pokerSiteId, playerName); var frm = new PlayerNoteView(viewModel) { Owner = System.Windows.Application.Current.MainWindow }; frm.ShowDialog(); var clickedItem = s as FrameworkElement; if (clickedItem == null || !(clickedItem.DataContext is ReplayerPlayerViewModel)) { return; } var hudElement = clickedItem.DataContext as ReplayerPlayerViewModel; hudElement.NoteToolTip = viewModel.HasNotes ? viewModel.Note : string.Empty; }; radMenu.Items.Add(item); return(radMenu); }