WPF命令 - 内存泄漏

时间:2011-10-24 19:23:16

标签: .net wpf mvvm tabcontrol wpf-4.0

我正在使用带有MVVM模式的WPF 4。我有一个TabControl - 它看起来像:

 <TabControl x:Name="Items" ItemsSource="{Binding Screens}" 
                            SelectedItem="{Binding ActiveScreen}">
   <TabControl.ItemTemplate>
     <DataTemplate>
       <ContentControl>
            <Button Command="{Binding 
                              DataContext.ScreenCloseCommand, 
                              ElementName=MainWindow}" 
                    CommandParameter="{Binding}">X</Button>
       </ContentControl>
     </DataTemplate>
   </TabControl.ItemTemplate>

问题是,CommandParameter =“{Binding}”拥有对当前显示的View / ViewModel的强引用。我该如何删除该命令?换句话说:我需要一种方法来通过只有TabControl.ContentTemplate(ViewModel和View)的引用来从ItemTemplate中删除Button命令。像浏览物品,找到物品,删除命令...

由于 迈克尔

1 个答案:

答案 0 :(得分:1)

我认为你在看错了问题。保持ViewModel活着的不是Binding。它是整个TabControl以及它所绑定的集合。

如果您描述了您尝试解决的实际问题,而不是您尝试使用的解决方案,我们可能会帮助您更好。