Lib*_*tal 5 c# mvvm mvvm-light windows-phone-8
我在Windows Phone 8项目中仅使用MVVM Light库(来自Nuget包),我想使用EventToCommand它ToggleSwitch.我有这些代码行:
<toolkit:ToggleSwitch x:Name="LockSwitch"
        IsChecked="{Binding IsLock, Mode=TwoWay}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Toggled">
            <Command:EventToCommand 
                Command="{Binding DataContext.NavigateToArticleCommand, ElementName=LayoutRoot}"
                CommandParameter="{Binding}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</toolkit:ToggleSwitch>
问题是VS显示错误:
错误1名称"EventToCommand"在命名空间"clr-namespace:GalaSoft.MvvmLight.Command; assembly = GalaSoft.MvvmLight.Extras.WP8"中不存在.
错误2找不到类型'Command:EventToCommand'.验证您是否缺少程序集引用,并且已构建所有引用的程序集.
错误3标记'EventToCommand'在XML命名空间'clr-namespace中不存在:GalaSoft.MvvmLight.Command; assembly = GalaSoft.MvvmLight.Extras.WP8'.
我在文件Styles.xaml中有上面的行,它是一个ResourceDictionary并且ToggleSwitch是a的一部分DataTemplate.我使用这一行包括MvvmLight库:
xmlns:Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP8"
怎么了?为什么我会收到错误?我试图使用谷歌,但我找不到解决方案.
用于包含命令的引用是错误的.正确的参考是
xmlns:Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
没有编写一行代码就可以获得这个引用.
下载MvvmLight nuget包后,编译项目,然后在Expression Blend中打开xaml文件.
然后单击左侧工具栏(底部的)上的Assets图标并开始键入"eventtocommand"(参见下图).

一旦您看到EventToCommand出现在Assets面板中,将其拖放到您的顶部ToggleSwitch.而已!引用将自动添加到您的xaml中以及实际的命令代码中.
| 归档时间: | 
 | 
| 查看次数: | 1865 次 | 
| 最近记录: |