[英]ApplicationSignInManager class throws invalid cast exception
[英]RelayCommand<bool> throws invalid cast exception
我正在尝试参数化RelayCommand,但遇到运行时强制转换异常。
这是相关的xaml和视图模型行:
XAML
<MenuItem Header="Save Project As" Command="{Binding Main.SaveProjectAsRelayCommand}" CommandParameter="false" />
视图模型
public RelayCommand<bool> SaveProjectAsRelayCommand { get; set; }
SaveProjectAsRelayCommand = new RelayCommand<bool>(SaveProjectAs, ProjectTaskCanExecute);
private void SaveProjectAs(bool b){...}
private bool ProjectTaskCanExecute(bool b){...}
当我单击文件菜单时,GalaSoft会抛出一个
InvalidCastException(“指定的类型转换无效)
当我从所有内容中删除参数时,效果很好。
我是否需要做一些事情以使“ false”被强制转换为布尔值?
类型转换器必须将其转换为字符串而不是布尔值。
<MenuItem Header="Save Project As" Command="{Binding Main.SaveProjectAsRelayCommand}" >
<MenuItem.CommandParameter>
<x:Boolean>False<x:Boolean>
</MenuItem.CommandParameter>
</MenuItem>
尝试以上。 您将必须在XAML中使用以下名称空间。
xmlns:x="clr-namespace:System;assembly=mscorlib"
或者,您可以在绑定到的“主”中创建一个属性
<MenuItem Header="Save Project As" Command="{Binding Main.SaveProjectAsRelayCommand}" CommandParameter="{Binding Main.IsTask}" />
在主虚拟机中,您将拥有
public bool IsTask{get;set;}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.