Wpf 使用telerik:RadGridView:内存泄漏
我有一个使用Wpf 使用telerik:RadGridView:内存泄漏,wpf,memory-leaks,telerik,telerik-grid,Wpf,Memory Leaks,Telerik,Telerik Grid,我有一个使用MVVM设计模式的WPF应用程序 在测试内存增长时,我遇到了内存泄漏。几天来我一直在努力修复,但都没有成功。如果可能的话,有人可以指出这个问题 <Grid> <Grid.RowDefinitions> <RowDefinition Height="5"></RowDefinition> <RowDefinition Height="*"></RowDefinition>
MVVM
设计模式的WPF应用程序
在测试内存增长时,我遇到了内存泄漏。几天来我一直在努力修复,但都没有成功。如果可能的话,有人可以指出这个问题
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="5"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<!--Service Header Editable Data-->
<StackPanel Grid.Row="0">
</StackPanel>
<telerik:RadGridView x:Name="grid"
IsReadOnly="{Binding IsServiceReadOnly}"
ItemsSource="{Binding DetailsModel.Collection}"
SelectedItem="{Binding SelectedCharge, Mode=TwoWay}"
CellEditEnded="grid_CellEditEnded"
AutoGenerateColumns="False"
ShowGroupPanel="False"
RowIndicatorVisibility="Collapsed"
ShowColumnFooters="True"
CanUserFreezeColumns="False"
behav:GridFoucsBehav.GridFocusPosition="{Binding GridViewChargesFocColPos, Mode=TwoWay}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Header="{lp:Lp UI:ServiceCode}"
DataMemberBinding="{Binding ServiceCode}">
<telerik:GridViewDataColumn.AggregateFunctions>
<telerik:CountFunction Caption="c: " />
</telerik:GridViewDataColumn.AggregateFunctions>
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<CustomControl:MyControl
SelectedIDPath="ID"
SelectedID="{Binding ServiceID}"
StringToSearch="{Binding ServiceCode}"
SelectedItem="{Binding DataContext.SelectedService, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type v:MyView}}}"
ExprQueryByString="{Binding DataContext.ServiceExprQueryByString, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type v:MyView}}}">
<CustomControl:Lookup.DisplayMemberPaths>
<s:String>code</s:String>
</CustomControl:Lookup.DisplayMemberPaths>
<CustomControl:Lookup.ColumnHeaders>
<s:String>Code</s:String>
<s:String>Description</s:String>
</CustomControl:Lookup.ColumnHeaders>
</CustomControl:MyControl>
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="{lp:Lp UI:ReceiptView_NumberOfUnit}"
DataMemberBinding="{Binding NumberOfUnit}">
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<telerik:RadNumericUpDown Value="{Binding NumberOfUnit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
UpdateValueEvent="PropertyChanged"
Minimum="0" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="{lp:Lp UI:Code}"
DataMemberBinding="{Binding Code, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}">
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox Text="{util:TwoWayBinding Code}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
<telerik:GridViewDataColumn Header="{lp:lp UI:Remarks}"
DataMemberBinding="{Binding Remarks,Mode=TwoWay}">
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<TextBox Text="{Binding Remarks, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
密码
密码
描述
打开并关闭几个窗口后,内存会增长,对象仍挂在内存中
这是我的windows:
我的窗口
System.Windows.DataTemplate->MyApp.MyWindow->(System.Windows.Controls.Border,System.Windows.EffectiveValueEntry
[],System.Windows.Threading.Dispatcher,…):12MB(11.23%)(3
对象,852字节(0.00%))以前的分配(最新到
最老的:11MB(11.22%)、740MB(7.19%)、740MB(7.19%), 引用人:1200万(11.23%) 从System.Windows.DataTemplate System.Windows.EffectiveValueEntry []->System.Windows.DataTemplate->(MyWindow、System.Collections.Specialized.HybridDictionary、System.Windows.Threading.Dispatcher,…) 参考:668KB(0.64%) 到Telerik.Windows.Controls.RadTabControl MyWindow->Telerik.Windows.Controls.RadTabControl->(System.Windows.EffectiveValueEntry [],System.Windows.Style,System.Windows.Threading.Dispatcher,…)93 kB(0.09%) 至MyApp.ItemsNavigator MyApp.MyWindow->MyApp.ItemsNavigator->(System.Windows.Controls.DockPanel,System.Windows.Threading.Dispatcher,Telerik.Windows.Controls.RadTabItem,…) 24KB(0.02%) 到Telerik.Windows.Controls.RadContextMenu MyApp.MyWindow->Telerik.Windows.Controls.RadContextMenu->(System.Windows.Controls.ControlTemplate,System.Windows.EffectiveValueEntry [],System.Windows.Threading.Dispatcher,…) 2.8 kB(0.00%)至System.Windows.Controls.Border MyApp.MyWindow->System.Windows.Controls.Border->(MyApp.MyWindow,System.Windows.EffectiveValueEntry [],System.Windows.Threading.Dispatcher) 3.3MB(3.26%)到MyApp.LocalizedValidationPanel MyApp.MyWindow->MyApp.LocalizedValidationPanel->(System.Windows.Controls.ContentPresenter,System.Windows.Controls.Grid,System.Windows.Threading.Dispatcher,…) 3.0 MB(2.97%)到MyApp.ExRadGridView MyApp.MyWindow->MyApp.ExRadGridView->(System.Windows.EffectiveValueEntry [],System.Windows.Style,System.Windows.Threading.Dispatcher,…) 2.2 MB(2.14%)到Telerik.Windows.Controls.RadGridView MyApp.MyWindow->Telerik.Windows.Controls.RadGridView->(System.Windows.EffectiveValueEntry [],System.Windows.Style,System.Windows.Threading.Dispatcher,…) 1.1MB(1.06%)到MyApp.MenuItem MyApp.MyWindow->MyApp.MenuItem->(System.Windows.EffectiveValueEntry) [],System.Windows.Style,System.Windows.Threading.Dispatcher,…) 1.1 MB(1.04%)到System.Windows.EffectiveValueEntry[]MyApp.MyWindow->System.Windows.EffectiveValueEntry []->(System.Collections.Hashtable、System.Uri、System.Windows.EventHandlersStore,…) 我知道了。如果有帮助的话 Telerik.Windows.Controls.RadGridView System.Collections.Generic.Dictionary.Entry []->Telerik.Windows.Controls.RadGridView->(System.Windows.EffectiveValueEntry [],System.Windows.Style,System.Windows.Threading.Dispatcher,…):12 MB(100.00%)(3个对象,0.0字节(0.00%)) 引用人:1200万(100.00%) 来自System.Collections.Generic.Dictionary.Entry []System.Collections.Generic.Dictionary->System.Collections.Generic.Dictionary.Entry []->(Telerik.Windows.Controls.RadGridView) 参考:12KB(0.10%) 转到System.Windows.EffectiveValueEntry []Telerik.Windows.Controls.RadGridView->System.Windows.EffectiveValueEntry []->(MS.Utility.FrugalMap、System.Boolean、System.Windows.EventHandlersStore等) 8.0 kB(0.07%)到Telerik.Windows.Data.DataItemCollection Telerik.Windows.Controls.RadGridView->Telerik.Windows.Data.DataItemCollection->(Telerik.Windows.Data.CompositeFilterDescriptorCollection,Telerik.Windows.Data.GroupDescriptorCollection,Telerik.Windows.Data.ObservableCollectionManagerCollection,…) 3.5 kB(0.03%)到System.Windows.Controls.Grid Telerik.Windows.Controls.RadGridView->System.Windows.Controls.Grid->(System.Windows.Controls.UIElementCollection,System.Windows.EffectiveValueEntry [],System.Windows.Threading.Dispatcher) 1.0 kB(0.01%)到Telerik.Windows.Controls.GridView.Selection.GridViewItemSelectionHandler Telerik.Windows.Controls.RadGridView->Telerik.Windows.Controls.GridView.SelectionHandler->(Telerik.Windows.Controls.RadGridView,Telerik.Windows.Data.DataItemCollection,Telerik.Windows.Data.Selection.InternalSelectionItemsStorage) 912字节(0.01%) 到Telerik.Windows.Controls.GridView.Selection.Selection拖动Telerik.Windows.Controls.RadGridView->Telerik.Windows.Controls.GridView.Selection.Selection->(Telerik.Windows.Controls.GridView.Scrolling.ScrollViewerCoordinator,Telerik.Windows.Controls.GridView.Selection.DefaultMouseInfo提供程序,Telerik.Windows.Controls.RadGridView) 564字节(0.00%) 到
CellEditEnded="grid_CellEditEnded"