3

这是我的问题,我想在按下此画布时传递整数 1。每次单击画布时,我都会在 GalaSoft.MvvmLight.dll 中出现“System.InvalidCastException”类型的未处理异常。现在我可以让我的生活更轻松,只需执行 RelayCommand 来接受 String 而不是 int 而是为了学习。我怎么会这样做,

    <i:Interaction.Triggers>
   <i:EventTrigger EventName="MouseLeftButtonDown">
         <cmd:EventToCommand Command="{Binding ButtonPress}"
                 CommandParameterValue="1"
              </i:EventTrigger>
    </i:Interaction.Triggers>
4

2 回答 2

4

您刚刚发现了泛型转换的限制。我对此感到抱歉。我将尝试在下一个版本中找到一种更好的方法来处理简单值(也许通过一些反射来检查类型上是否存在 Parse 方法)并在我的积压工作中打开了一个错误。同时,请使用 RelayCommand 并自己进行解析。

干杯,劳伦特

于 2010-03-30T06:32:43.363 回答
1

您可以使用以下语法将字符串以外的数据类型传递给命令:

<i:EventTrigger EventName="MouseLeftButtonDown">
    <cmd:EventToCommand Command="{Binding ButtonPress}">
        <cmd:EventToCommand.CommandParameterValue>
            <s:Int32>1</s:Int32>
        </cmd:EventToCommand.CommandParameterValue>
    </cmd:EventToCommand>
</i:EventTrigger>

为 s 添加流动的命名空间声明:

xmlns:s="clr-namespace:System;assembly=mscorlib"
于 2010-08-31T06:58:33.447 回答