3

私は自分の WPF アプリケーションに を持っていUserControlます。Window

    <StackPanel Orientation="Horizontal" Margin="5">
        <Button Command="{Binding AddFileCommand}" />
    </StackPanel>

モデルでは、AddFileCommand変数を宣言して初期化しました。

public ICommand AddFileCommand { get; set; }

public XXXModel()
{
    AddFileCommand = new DelegateCommand(o => true, AddFile);
}

ICommandイベントの代わりに s を使用することをお勧めしClickます。

Windows XP では、このボタンをクリックしても AddFile(object parameter) 関数は起動しません。Windows Vista/Windows 7 では、魅力的に動作します。コードからの直接呼び出しICommand.Execute()は、XP でも機能します。

.NET フレームワーク (プロジェクトは .NET 4.0 を使用) を更新しようとしましたが、それでもコードに不足があります。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

-1

@ta.speot.is で言及されているように、DelegateCommandコンストラクターは、呼び出されるAction<T>として最初の引数を取り、2 番目はCanExecute() で参照されるFunc<T, bool>です。

メソッドは、 Action<T>ではなくFunc<T, bool>Executeを実行します。ある OS では動作せず、別の OS でも動作しませんでした。

于 2013-03-29T07:12:17.220 に答える