C# (如何)删除';文件';从阿瓦朗多克的一个绑定收藏中?

C# (如何)删除';文件';从阿瓦朗多克的一个绑定收藏中?,c#,wpf,mvvm,mvvm-light,avalondock,C#,Wpf,Mvvm,Mvvm Light,Avalondock,我把“如何”放在括号里,因为我不确定是否必须这样做 考虑以下几点: 我有一个带有AvalonDock控件的MVVM应用程序。控制措施如下: <xcad:DockingManager Grid.Row="1" DocumentsSource="{Binding Workspaces}" Background="White" ActiveContent="{Binding ActiveWorkspace, Mode=TwoWay}"> <xc

我把“如何”放在括号里,因为我不确定是否必须这样做

考虑以下几点:

我有一个带有AvalonDock控件的MVVM应用程序。控制措施如下:

        <xcad:DockingManager Grid.Row="1" DocumentsSource="{Binding Workspaces}" Background="White" ActiveContent="{Binding ActiveWorkspace, Mode=TwoWay}">
            <xcad:DockingManager.LayoutItemContainerStyle>
                <Style TargetType="{x:Type li:LayoutItem}">
                    <Setter Property="Title" Value="{Binding Model.Header}"/>
                </Style>
            </xcad:DockingManager.LayoutItemContainerStyle>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="DocumentClosed">
                    <cmd:EventToCommand Command="{Binding CloseWorkspaceCommand}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </xcad:DockingManager>
RaisePropertyChanged
用于其他一些不相关的功能

现在我有个问题。假设我有3个开放的工作区,让我们称它们为A、B和C

  • 如果我关闭A,C也会随之关闭
  • 如果我关闭B,C也会随之关闭
  • 如果我关闭C,B也会随之关闭
我应该如何实现这一点,以便只有我单击了关闭按钮的选项卡才会关闭

我见过一些基础集合不删除工作空间的示例,但是在这个应用程序中,我需要能够删除关闭的工作空间,因为我希望某些工作空间只允许打开一次


更新:这似乎是确定实际删除的选项卡项的问题。如果要关闭的选项卡不是所选项目,这就是为什么它会删除其中两个。问题是,我如何告诉它哪个选项卡正在关闭?

您的
工作空间
集合包含什么?它是
工作空间视图模型的
可观察集合。可能应该提到这一点,我错了。:)能否显示viewmodels的代码和类型
    public RelayCommand CloseWorkspaceCommand
    {
        get { return _closeWorkspaceCommand ?? (_closeWorkspaceCommand = new RelayCommand(CloseWorkspace)); }
    }

    void CloseWorkspace()
    {
        Workspaces.Remove(ActiveWorkspace); RaisePropertyChanged(string.Empty);
    }