【问题标题】:MVVMLight EventToCommand causing memory LeakMVVMLight EventToCommand 导致内存泄漏
【发布时间】:2010-11-08 15:28:45
【问题描述】:

你好

我的 EventToCommand 连接到 MVVM 时,我得到了这个 xaml,这个代码的问题是,在离开页面后,它总是留在内存中。

<ComboBox Grid.Column="1" Grid.Row="0" FontSize="10" 
                  SelectedIndex="{Binding Foo, Mode=TwoWay}" TabIndex="0">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <cmd:EventToCommand Command="{Binding FooChangeCommand}"
                                        PassEventArgsToCommand="True" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <ComboBoxItem Content="Show Al" />               
            <ComboBoxItem Content="..." /> 
        </ComboBox>

【问题讨论】:

  • 看看他们的代码,他们使用的是弱引用吗?如果没有,你认为他们需要吗?我猜有些东西会导致循环引用问题。
  • 我用 mvvm-light 标签重新标记了它 - MVVM Light 创建者,该项目的许多专家都遵循该标签。希望他们中的一个能够解决这个问题。
  • 我没有任何循环引用,但我必须找到时间复制并发送给 MVVM Light 先生

标签: c# silverlight-4.0 memory-leaks mvvm-light


【解决方案1】:

两年后,我遇到了完全相同的问题。

我已经解决了使用i:InvokeCommandAction 而不是cmd:EventToCommand

【讨论】:

    【解决方案2】:

    可能与:http://mvvmlight.codeplex.com/workitem/7512

    由于上述链接已失效:

    1. 转到https://archive.codeplex.com/?p=mvvmlight
    2. home 切换到issues
    3. 在页面内搜索“EventToCommand 内存泄漏(Windows Phone 7 SP1 工具包)”

    关于该问题的cmets表明https://atomaras.wordpress.com/2012/04/23/solving-mvvmlights-eventtocommand-memory-leak-wp7/可能会为该问题提供更深入的分析和解决方案。

    【讨论】:

    • 链接已损坏,项目现在是mvvmlight.net,但我没有找到任何相关内容
    • 更新了帖子。该信息仍在 CodePlex 上,但遗憾的是无法链接。
    猜你喜欢
    • 2015-07-06
    • 2014-06-07
    • 2013-11-20
    • 2011-10-28
    • 2016-01-18
    • 2012-12-13
    • 1970-01-01
    • 2011-01-08
    • 2011-02-01
    相关资源
    最近更新 更多