3

これが私の問題です。このキャンバスが押されたときに整数1を渡したいのです。キャンバスをクリックするたびに、GalaSoft.MvvmLight.dllで「System.InvalidCastException」タイプの未処理の例外が発生します。これで、作業が楽になり、RelayCommandを実行して、intではなくStringを受け入れることができましたが、これは学習のためです。このようにするにはどうすればよいですか、

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

2 に答える 2

4

一般的なキャストの制限を見つけました。申し訳ありません。さらなるバージョンで単純な値を処理するためのより良い方法を見つけようとし(おそらく、解析メソッドが型に存在するかどうかを確認するためのリフレクションを使用して)、バックログにバグを開きました。それまでの間、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 に答える