.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 を静的にすると機能しますが、ビューモデル内の他の関数にアクセスできません。
私はしばらくこれを理解しようとしてきましたが、運がありませんでした。