使用本地/匿名操作时,MvvmLight消息未触发

时间:2014-05-10 00:42:12

标签: c# mvvm-light

当我使用匿名操作时,MvvmLight messenger有时不起作用。如果我将成员变量或方法作为操作传递它可以正常工作,但使用匿名lambda或局部变量不起作用。

    private SongCollection songCollection;
    Action<bool> c;
    public MyService(SongCollection songCollection)
    {
        this.songCollection = songCollection;

        Action<bool> a = (bool isLoading) =>
        {
            ChangeSong(songCollection.GetFirstSong());
        }; 

        Action<bool> b = OnLoadingComplete; //Using this instead of 'a' works.
        //c = a; //Uncommenting this line makes it work, even if using 'a'.

        Messenger.Default.Register<bool>(this, "IsLoading", a); //Doesn't work.
    }

我猜它与垃圾收集或MvvmLight在幕后工作的方式有关。或者我错过了一些明显的东西?

我在.Net4.0上使用版本MvvmLight 4.3.31.1

0 个答案:

没有答案