ToolTip Memory pierda en WPF al vincular una vista a ViewModel
Tengo una aplicación enWPF
, MVVM
. Muestra una lista deImages
en unListBox
Cada imagen está asociada a una sesión diferente.
MiListBox
ItemTemplate
Se ve como esto,
<ListBox.ItemTemplate>
<DataTemplate>
<Image
Source="{Binding IsClaims,Converter={StaticResource PolicyClaimsImageSelector}}"
ToolTipService.ShowDuration="7000">
<Image.ToolTip>
<StackPanel>
<TextBlock Text="{Binding WorkingSessionName}" />
<Views:ToolTipView DataContext="{Binding ThisViewModel}"/>
</StackPanel>
</Image.ToolTip>
</Image>
</DataTemplate>
</ListBox.ItemTemplate>
My ViewModel
public class Session : BindableBase
{
private MainViewModel _ThisViewModel;
public MainViewModel ThisViewModel
{
get
{
return _ThisViewModel;
}
set
{
_ThisViewModel = value;
NotifyPropertyChanged();
}
}
}
Cuando aparece la información sobre herramientas, hay una pérdida de memoria, sin entender por qué sucede, mi pregunta es si hay algo que tenga que ver conToolTip
adispose
cualquier recuerdo después de mostrar elToolTip
?. Si es así, ¿cómo hacer eso?
Editar
No se suscriben eventos. Solo vinculanteDataContext
de diferenteViewModels
de diferenteViews
ToolTipView.XAML
<DockPanel>
<xcad:DockingManager DockPanel.Dock="Left" Grid.Row="2" BorderBrush="Black" BorderThickness="1">
<xcad:DockingManager.Theme>
<xcad:MetroTheme />
</xcad:DockingManager.Theme>
<xcad:LayoutRoot >
<xcad:LayoutPanel Orientation="Horizontal" >
<xcad:LayoutAnchorablePaneGroup Orientation="Horizontal" DockMinWidth="150" >
<xcad:LayoutAnchorablePane >
<xcad:LayoutAnchorable Title="Folder" x:Name="ExplorerView" AutoHideWidth="300">
<Views:ExplorerView DataContext="{Binding ExplorerViewModel}"/>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorablePane>
</xcad:LayoutAnchorablePaneGroup>
<xcad:LayoutAnchorablePaneGroup Orientation="Horizontal" DockMinWidth="450" >
<xcad:LayoutAnchorablePane >
<xcad:LayoutAnchorable Title="Documents" x:Name="TOC">
<Views:TableOfContentView DataContext="{Binding TableOfContentViewModel}"/>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorablePane>
</xcad:LayoutAnchorablePaneGroup>
<xcad:LayoutAnchorablePaneGroup Orientation="Vertical" DockMinWidth="320">
<xcad:LayoutAnchorablePane DockMinHeight="400" >
<xcad:LayoutAnchorable Title="Properties" x:Name="Property">
<Views:PropertyView DataContext="{Binding PropertyViewModel}"/>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorablePane>
<xcad:LayoutAnchorablePane >
<xcad:LayoutAnchorable Title="Search" x:Name="Search">
<Views:SearchPanel DataContext="{Binding SearchViewModel}"/>
</xcad:LayoutAnchorable>
</xcad:LayoutAnchorablePane>
</xcad:LayoutAnchorablePaneGroup>
</xcad:LayoutPanel>
</xcad:LayoutRoot>
</xcad:DockingManager>
</DockPanel>
EDITARHe intentado eliminar todo elViews
desde elToolTipView.XAML
como a continuación y muestre la información sobre herramientas sin ninguna Vista en elToolTip
me da lo mismomemory leak
.
Así es como se ve mi ToolTipView.XAML,
<UserControl x:Class="ecclient.viewer.Views.ToolTipView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:Views="clr-namespace:ecclient.viewer.Views">
</UserControl>