diff --git a/src/Calculator/Views/HistoryList.xaml b/src/Calculator/Views/HistoryList.xaml index e2d1f002..58f27a03 100644 --- a/src/Calculator/Views/HistoryList.xaml +++ b/src/Calculator/Views/HistoryList.xaml @@ -57,8 +57,7 @@ - + (this->DataContext); - HistoryItemViewModel^ clickedItem = safe_cast(e->ClickedItem); + HistoryViewModel^ historyVM = dynamic_cast(this->DataContext); + HistoryItemViewModel^ clickedItem = dynamic_cast(e->ClickedItem); // When the user clears the history list in the overlay view and presses enter, the clickedItem is nullptr - if (clickedItem != nullptr) + if (clickedItem != nullptr && historyVM != nullptr) { historyVM->ShowItem(clickedItem); } @@ -55,8 +55,7 @@ void HistoryList::ListView_ItemClick(_In_ Object^ sender, _In_ ItemClickEventArg void HistoryList::OnDeleteMenuItemClicked(_In_ Object^ sender, _In_ RoutedEventArgs^ e) { auto listViewItem = HistoryContextMenu->Target; - auto itemViewModel = safe_cast(HistoryListView->ItemFromContainer(listViewItem)); - + auto itemViewModel = dynamic_cast(HistoryListView->ItemFromContainer(listViewItem)); if (itemViewModel != nullptr) { Model->DeleteItem(itemViewModel); @@ -65,9 +64,11 @@ void HistoryList::OnDeleteMenuItemClicked(_In_ Object^ sender, _In_ RoutedEventA void HistoryList::OnDeleteSwipeInvoked(_In_ MUXC::SwipeItem^ sender, _In_ MUXC::SwipeItemInvokedEventArgs^ e) { - auto swipedItem = safe_cast(e->SwipeControl->DataContext); - - Model->DeleteItem(swipedItem); + auto swipedItem = dynamic_cast(e->SwipeControl->DataContext); + if (swipedItem != nullptr) + { + Model->DeleteItem(swipedItem); + } } void HistoryList::ScrollToBottom() diff --git a/src/Calculator/Views/Memory.xaml.cpp b/src/Calculator/Views/Memory.xaml.cpp index 128bf0dc..4a53b0d4 100644 --- a/src/Calculator/Views/Memory.xaml.cpp +++ b/src/Calculator/Views/Memory.xaml.cpp @@ -100,5 +100,5 @@ void Memory::IsErrorVisualState::set(bool value) MemoryItemViewModel^ Memory::GetMemoryItemForCurrentFlyout() { auto listViewItem = MemoryContextMenu->Target; - return safe_cast(MemoryListView->ItemFromContainer(listViewItem)); + return dynamic_cast(MemoryListView->ItemFromContainer(listViewItem)); }