我有一个主从应用程序,其中详细视图模型/视图能够执行删除命令。
但是我怎样才能通知主视图模型中的主集合细节视图模型被删除并且必须从集合中删除?
这是一个糟糕的设计,主视图模型必须删除细节吗?或者是通过事件做到这一点的唯一选择?MVVM 符合?
这是一个缩短的代码
视图模型
public class AllMetalTransactionViewModel : WorkspaceViewModel
{
private ObservableCollection<MetalTransactionViewModel> _metalTransactions;
public ObservableCollection<MetalTransactionViewModel> MetalTransactions
{
get { return _metalTransactions; }
set
{
if (Set("MetalTransactions", ref _metalTransactions, value))
{
}
}
}
private MetalTransactionViewModel _selectedMetalTransaction;
public MetalTransactionViewModel SelectedMetalTransaction
{
get { return _selectedMetalTransaction; }
set
{
if (Set("SelectedMetalTransaction", ref _selectedMetalTransaction, value))
{
}
}
}
}
public class MetalTransactionViewModel : WorkspaceViewModel
{
private RelayCommand _deleteCommand;
public RelayCommand DeleteCommand
{
get
{
return _deleteCommand
?? (_deleteCommand = new RelayCommand(
() =>
{
if (!IsNewUnit)
{
_dataService.DeleteMetalTransaction(_metalTransaction, CallbackDelete);
_dataService.CommitAllChanges(delegate(bool b, object o) { });
// How can I inform the AllMetalTransactionViewModel that I'm deleted? Event?
}
},
() => !IsNewUnit));
}
}
}
XAML 主控
<View:MetalTransactionView Grid.Column="1"
DataContext="{Binding SelectedMetalTransaction}"></View:MetalTransactionView>
XAML-详细信息
<Button DockPanel.Dock="Right" HorizontalAlignment="Right"
Padding="5" Content="Löschen" Margin="5" Width="80"
Command="{Binding Path=DeleteCommand}" />