|
schedule.PreviewMouseDoubleClick += Schedule_PreviewMouseDoubleClick;
schedule.PreviewMouseLeftButtonUp += Schedule_PreviewMouseLeftButtonUp;
…
private void Schedule_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
//Custom appointment editor window
var window = new Window();
window.Show();
}
private void Schedule_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
e.Handled = true;
}
|
|
schedule.PreviewMouseDoubleClick += Schedule_PreviewMouseDoubleClick;
schedule.PreviewMouseLeftButtonUp += Schedule_PreviewMouseLeftButtonUp;
…
private void Schedule_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (this.CanHandleClick(e.OriginalSource))
{
e.Handled = true;
//Custom appointment editor window
var window = new Window();
window.Show();
}
}
private void Schedule_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (this.CanHandleClick(e.OriginalSource))
{
e.Handled = true;
//Custom appointment editor window
var window = new Window();
window.Show();
}
}
private bool CanHandleClick(object originalSource)
{
var appointment = (originalSource as FrameworkElement).DataContext asScheduleAppointment;
if (appointment == null)
return false;
if (!appointment.IsRecursive)
return false;
return true;
} |
|
private void Schedule_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if (this.CanHandleClick(e.OriginalSource))
{
e.Handled = true;
//Selected RecurrenceAppointment
var originalAppointment = this.GetCustomAppointment(e.OriginalSource);
//Custom appointment editor window
var window = new Window();
window.Show();
}
}
private object GetCustomAppointment(object originalSource)
{
var selectedAppointment = (originalSource as FrameworkElement).DataContext asScheduleAppointment;
var recurringAppointment = schedule.Appointments.FirstOrDefault(appointment => appointment.IsRecursive && appointment.RecurrenceID == selectedAppointment.RecurrenceID);
var source = (IEnumerable<object>)schedule.ItemsSource;
if (recurringAppointment != null)
return source.FirstOrDefault(x => x.GetHashCode() == (int)recurringAppointment.ObjectID);
return null;
} |