MVVM Light Messenger射击两次

时间:2012-07-11 11:16:15

标签: mvvm-light

我正在使用Messenger从后面的页面代码中广播一些信息(我不能使用eventtocommand)并且信使动作是两次 这是我的代码 在viewModel

public CedareImpozitViewModel()
{
if (IsInDesignMode)
{
}
else
{
LoadListaPers();
LoadListaEntitati();        
Messenger.Default.Register<EntitateMessage>(this, AdaugaEntitateNoua);
}

UpdCedareCommand = new RelayCommand(() => UpdCedare(), () => this.CanUpdCedare());

}

来自页面代码

Messenger.Default.Send(new EntitateMessage(cedare) { cedarenoua = cedare, entNoua = entity});

和EntitateMessage类

public class EntitateMessage : GenericMessage<CedareImpozit>
{
    public EntitateMessage(CedareImpozit parm)
        : base(parm)
    {
        entNoua = null;
        cedarenoua = null;
    }
    public CedareImpozit cedarenoua { get; set; }
    public Entitate entNoua { get; set; }
}

我没有从我的页面导航两次。 有任何想法吗 ? 谢谢

1 个答案:

答案 0 :(得分:2)

经验表明,当发生这样的事情时,原因始终是注册发生两次。在Register方法调用上放置一个断点来验证。

干杯, 劳伦