private void Event_Remove(object sender, RoutedEventArgs e) { WeeklyEvent ev = (sender as MenuItem).DataContext as WeeklyEvent; if (RemoveEvent != null) { RemoveEvent(this, new SelectEventArgs(ev.ViewModel)); } }
private void Event_Click(object sender, RoutedEventArgs e) { WeeklyEvent ev = sender as WeeklyEvent; if (SelectEvent != null) { SelectEvent(this, new SelectEventArgs(ev.ViewModel)); } }
private void GenerateEventControl(List <EventViewModel> events, int level, int maxLevel) { EventViewModel firstEvent = events[0]; events.RemoveAt(0); bool hasOverlaps = false; while (events.Count > 0 && EventsOverlap(firstEvent, events[0])) { hasOverlaps = true; GenerateEventControl(events, level + 1, maxLevel); } WeeklyEvent control = new WeeklyEvent(); control.Style = Application.Current.Resources["custom:WeeklyEvent"] as Style; control.Content = firstEvent.Text; Grid.SetRow(control, firstEvent.StartHour - StartHour); Grid.SetColumn(control, 1); Grid.SetRowSpan(control, firstEvent.Duration); double availableWidth = grid.ColumnDefinitions[1].ActualWidth; double widthPerEvent = availableWidth / (maxLevel + 1); control.Margin = new Thickness(level * widthPerEvent, 0, 0, 0); control.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; control.ViewModel = firstEvent; if (gfxNameCounter % 2 == 0) { control.GfxName = "green"; } else { control.GfxName = "turquoise"; } ++gfxNameCounter; ContextMenu menu = new ContextMenu(); menu.IsZoomEnabled = false; MenuItem edit = new MenuItem(); edit.Header = wpweeklyplanner.AppResources.ButtonEdit; edit.Click += new RoutedEventHandler(Event_Edit); edit.DataContext = control; MenuItem remove = new MenuItem(); remove.Header = wpweeklyplanner.AppResources.ButtonRemove; remove.Click += new RoutedEventHandler(Event_Remove); remove.DataContext = control; menu.Items.Add(edit); menu.Items.Add(remove); ContextMenuService.SetContextMenu(control, menu); if (hasOverlaps) { control.Width = widthPerEvent; } else { control.Width = availableWidth - level * widthPerEvent; } control.Click += new RoutedEventHandler(Event_Click); grid.Children.Add(control); }
private void GenerateEventControl(List<EventViewModel> events, int level, int maxLevel) { EventViewModel firstEvent = events[0]; events.RemoveAt(0); bool hasOverlaps = false; while (events.Count > 0 && EventsOverlap(firstEvent, events[0])) { hasOverlaps = true; GenerateEventControl(events, level + 1, maxLevel); } WeeklyEvent control = new WeeklyEvent(); control.Style = Application.Current.Resources["custom:WeeklyEvent"] as Style; control.Content = firstEvent.Text; Grid.SetRow(control, firstEvent.StartHour - StartHour); Grid.SetColumn(control, 1); Grid.SetRowSpan(control, firstEvent.Duration); double availableWidth = grid.ColumnDefinitions[1].ActualWidth; double widthPerEvent = availableWidth / (maxLevel + 1); control.Margin = new Thickness(level * widthPerEvent, 0, 0, 0); control.HorizontalAlignment = System.Windows.HorizontalAlignment.Left; control.ViewModel = firstEvent; if (gfxNameCounter % 2 == 0) { control.GfxName = "green"; } else { control.GfxName = "turquoise"; } ++gfxNameCounter; ContextMenu menu = new ContextMenu(); menu.IsZoomEnabled = false; MenuItem edit = new MenuItem(); edit.Header = wpweeklyplanner.AppResources.ButtonEdit; edit.Click += new RoutedEventHandler(Event_Edit); edit.DataContext = control; MenuItem remove = new MenuItem(); remove.Header = wpweeklyplanner.AppResources.ButtonRemove; remove.Click += new RoutedEventHandler(Event_Remove); remove.DataContext = control; menu.Items.Add(edit); menu.Items.Add(remove); ContextMenuService.SetContextMenu(control, menu); if (hasOverlaps) { control.Width = widthPerEvent; } else { control.Width = availableWidth - level * widthPerEvent; } control.Click += new RoutedEventHandler(Event_Click); grid.Children.Add(control); }