使用MVVM Light的当前版本(版本5.2.0),当使用Nullable<int>
(或int?
)时,我遇到一个异常,即调用Convert.ChangeType内部MVVM Light RelayCommandGeneric作为参数。
问题
当有时绑定绑定到空值而有时绑定到整数时,如何使用Nullable<int>
作为RelayCommand
的命令参数?绑定到不可为空的整数时,我没有看到问题。
背景
我在CodePlex(issue 7588)的问题跟踪器中发现了类似的故事,该故事表明它已在2012年得到解决。另外值得注意的是,有一个pull request试图解决该问题 - 但似乎请求未合并。
答案 0 :(得分:0)
不是真正的答案,但此问题的解决方法是使用Nullable<int>
作为通用参数类型而不是使用int
,而在XAML绑定中提供{{1一个哨兵值。然后在执行操作/中可以执行对sentinel值的操作检查。
在XAML中:
TargetNullValue
然后在视图模型中:
<Button Command="MyCommand"
CommandParameter="{Binding PathToNullableInt, TargetNullValue=0}"
Content="Do Something"/>