3

.Net と MVVM Light を使用してアプリケーションを作成していますが、RelayCommands に問題があります。

単一の引数を取り、それを同じ ViewModel 内の関数に渡す RelayCommand を作成しようとしています。ただし、これを試みるたびに、次の例外が発生し続けます。

タイプ 'System.MethodAccessException' の初回例外が mscorlib.dll で発生しました

私のコードは以下です。

XAML

<TextBlock Style="{StaticResource QueryFormTab}" >
    <Hyperlink Command="{Binding TestCommand}" CommandParameter="Tester">
        Test
    </Hyperlink>
</TextBlock>

ビューモデル

public RelayCommand<string> TestCommand { get; private set; }

// in the constructor 
TestCommand = new RelayCommand<string>((param) => _testExecute(param)); 

// function in viewmodel
private void _testExecute(string s)
{
    Trace.WriteLine("Test");
    ViewModelVariable = "abc";
}

関数 _testExecute を静的にすると機能しますが、ビューモデル内の他の関数にアクセスできません。

私はしばらくこれを理解しようとしてきましたが、運がありませんでした。

4

1 に答える 1