내가 컬렉션의 밖으로 항목을 삭제 내 뷰 모델에 다음 코드를 사용하고 있습니다 :조치를 제거 취소 - NotifyCollectionChangedAction
UnitMeasureCollection.CollectionChanged += new NotifyCollectionChangedEventHandler(ListOfUnitMeasureCollectionChanged);
void ListOfUnitMeasureCollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
{
if (e.Action == NotifyCollectionChangedAction.Remove)
{
if (NavigationActions.DeleteConfirmation("Delete Item.", "Are you sure you want to delete this item? This action cannot be undone."))
{
foreach (UnitMeasureBO item in e.OldItems)
{
UnitMeasureBO unitMeasureBO = item as UnitMeasureBO;
bool inUse = unitMeasureRepository.UnitMeasureInUse(unitMeasureBO.UnitMeasureValue);
if (inUse == true)
{
NavigationActions.ShowError("Cannot delete item", "This item cannot be deleted because it is used elsewhere in the application.");
}
else
{
unitMeasureRepository.DeleteUnitMeasure(unitMeasureBO.UnitMeasureValue);
}
}
}
}
}
나는 컬렉션에 바인딩 된 데이터 그리드가 있습니다. 확인 메시지를 기반으로 제거 작업을 취소하는 방법이 있으면 궁금합니다. NotifyCollectionChangedEventArgs에는 cancel 메소드가 없습니다. 사용자가 데이터 그리드에서 항목을 삭제하지만 확인에서 '아니요'를 선택하면 해당 항목은 여전히 데이터 그레이드에서 제거됩니다. 데이터베이스에서 삭제되지 않으며 DataGrid가 새로 고쳐지면 다시 나타납니다. mvvm 패턴을 사용하고 있으며 내 DataGrid를 코딩하지 않고이 작업을 수행하는 것을 선호합니다. 어떤 도움을 주셔서 감사합니다.
그건 내가 생각한거야. 내가 명령을 삭제에 대한 귀하의 생각을 좋아해. 감사! – steveareeno