public RaceGridEditorColumn() {
InputBindings.AddRange(new[] {
new InputBinding(new DelegateCommand(() => {
if (SelectCarPopup.IsOpen) {
var model = Model;
var selectCar = (SelectCarPopup.Content as DependencyObject)?.FindLogicalChild<SelectCar>();
if (model == null || selectCar == null) return;
foreach (var car in selectCar.GetSelectedCars().ToList()) {
var entry = model.FilteredView.OfType<RaceGridEntry>().LastOrDefault(x => x.Car == car);
if (entry != null) {
model.DeleteEntry(entry);
}
}
} else if (DetailsPopup.IsOpen) {
var dataGrid = (DetailsPopup.Content as FrameworkElement)?.FindVisualChild<DataGrid>();
if (dataGrid == null) return;
foreach (var entry in dataGrid.SelectedItems.OfType<RaceGridEntry>().ToList()) {
entry.DeleteCommand.Execute(null);
}
} else {
foreach (var entry in ListBox.SelectedItems.OfType<RaceGridEntry>().ToList()) {
entry.DeleteCommand.Execute(null);
}
}
}), new KeyGesture(Key.Delete)),
new InputBinding(new DelegateCommand(() => {
if (SelectCarPopup.IsOpen) {
AddOpponentCarCommand.Execute(null);
}
}), new KeyGesture(Key.Enter)),
});
InitializeComponent();
SelectCarPopup.CustomPopupPlacementCallback = CustomPopupPlacementCallback;
DetailsPopup.CustomPopupPlacementCallback = CustomPopupPlacementCallback;
}