Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }