2015-12-23 12 views
0

В Windows Phone 8 приложения Я имею ItemsControl с ItemTemplate, которые имеют событие на кране:Windows Phone 8 - команды вызывает утечку памяти интерактивность

<interactivity:Interaction.Triggers> 
    <interactivity:EventTrigger EventName="Tap"> 
     <command:EventToCommand Command="{Binding Mode=OneWay, Path=DataContext.NavigateToNextPage, Source={StaticResource Context}}" CommandParameter="{Binding}" /> 
    </interactivity:EventTrigger> 
</interactivity:Interaction.Triggers>--> 

Контекст:

<ContentControl x:Key="Context" Content="{Binding}" /> 

RelayCommand:

public RelayCommand<MyItem> NavigateToNextPageCommand 
{ 
    get { return _navigateToNextPageCommand ?? (_navigateToNextPageCommand = new RelayCommand<MyItem>(NavigateToNextPage)); } 
} 

Предмет заказа Контроль:

<ItemsControl Grid.Row="2" ItemsSource="{Binding DepositsItems}"> 

DepositsItems Список, который содержит около 200 элементов, и иногда его перезаряжаю. После нескольких перезагрузок у меня происходит утечка памяти, и приложение закрывается. Я нашел, почему это происходит. Когда я удаляю событие Tap, все работает. Я думаю, что команда содержит ссылку на элемент, а GC не освобождает память.

Есть ли способ «отвязать» команду с элемента? Мне очень нравится шаблон MVVM.

Я нашел это: https://atomaras.wordpress.com/2012/04/23/solving-mvvmlights-eventtocommand-memory-leak-wp7/, но он не работает. Есть ли более простое решение?

FIXED

Я установил ее, изменив EventToCommand к InvokeCommandAction.

+0

пожалуйста, напишите ваш Фикс в ответ – Eldho

+0

Принять это как ответ @ darson1991 – Eldho

ответ

1

Я установил ее, изменив EventToCommand на InvokeCommandAction.

<interactivity:Interaction.Triggers> 
    <interactivity:EventTrigger EventName="Tap"> 
     <command:InvokeCommandAction Command="{Binding Mode=OneWay, Path=DataContext.NavigateToNextPage, Source={StaticResource Context}}" CommandParameter="{Binding}" /> 
    </interactivity:EventTrigger> 
</interactivity:Interaction.Triggers> 

 Смежные вопросы

  • Нет связанных вопросов^_^