如何在WPF的MVVM设计模式中处理TabControl选项卡关闭

3

我有一个TabControl

        <TabControl ItemsSource="{Binding TabItemsViewModelCollection}" 
        ContentTemplateSelector="{StaticResource TabControlTemplateSelector}"
                    SelectedItem="{Binding OpenedTab, Mode=TwoWay}" >
            <TabControl.ItemTemplate>
                <!-- this is the header template-->
                <DataTemplate>
                    <TextBlock
                Text="{Binding Header}" />
                </DataTemplate>
            </TabControl.ItemTemplate>
        </TabControl>

每个选项卡都会呈现标题文本,然后是一个关闭按钮。(不确定为什么只在模板中指定了文本块,却出现了关闭按钮。)
但是当我点击关闭按钮时,调试器就会停止工作。我该如何正确处理选项卡的关闭?我有一个包含TabViewModels的ObservableCollection。

你可以尝试使用MVVM Light库与事件到命令触发器,参考这个问题:https://dev59.com/5m025IYBdhLWcg3wqn4N - acrilige
1
“Debugger break”是什么意思?它是否抛出了一些错误? - Rohit Vats
是的,它会抛出一些错误。在使用ItemsSource时,操作无效。请改用ItemsControl.ItemsSource来访问和修改元素。 - Poul K. Sørensen
你是从TabControl.Items还是ObservableCollection中移除“Tabs”? - sa_ddam213
我没有添加任何逻辑,只是按了选项卡上的X。 - Poul K. Sørensen
1个回答

0

我正在使用https://github.com/MahApps,它对TabControl进行了一些修改的样式,而我却忽略了这一点,这意味着添加了一个点击操作。

覆盖样式解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接