private void DataGridContextMenuOpening(object sender, ContextMenuEventArgs e) { var element = e.OriginalSource as FrameworkElement; var dg = (MultiSelector)sender; if (element != null && element.DataContext is ITrack) { var commandbar = new CommandBar(); if (dg.SelectedItems.Count == 1) { var track = (ITrack)dg.SelectedItems[0]; _eventAggregator.GetEvent<TrackCommandBarEvent>().Publish(new TrackCommandBarModel(track, commandbar)); } else if (dg.SelectedItems.Count > 1) { var tracks = dg.SelectedItems.Cast<ITrack>(); _eventAggregator.GetEvent<TracksCommandBarEvent>().Publish(new TracksCommandBarModel(tracks, commandbar)); } dg.ContextMenu = new CommandBarContextMenu { ItemsSource = commandbar.ChildMenuItems }; } }
public SubmenuCommandModel(string displayName) { Content = displayName; _commandBar = new CommandBar(); }