5

WPF アプリケーションがあり、MVVM を実装しようとしています。メイン ウィンドウにはビューモデルとカスタム ユーザー コントロールがあります。このユーザー コントロールには、テキスト ボックスとボタンが含まれており、メインの親ウィンドウからデータ コンテキストを共有します。すべてが良いです...

テキストボックスをビューモデル内の変数にバインドでき、正常に動作します。しかし...私の人生では、ボタンからビューモデルにイベントハンドラーをバインドできません。次のエラーが表示され続けます。

Unable to cast object of type 'System.Reflection.RuntimeEventInfo' to type 'System.Reflection.MethodInfo'.

これは、MVVM を初めて使用するユーザーにとって一般的な問題であることを知っています。私はウェブを精査しましたが、何も機能していないようです。誰が私が間違っているのか説明できますか?

サンプル コードを次に示します。 メイン ウィンドウ:

<Window x:Class="Mvvm.View.MainWindowView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:view="clr-namespace:ZeeZor.Kiosk.Mvvm.View"
        WindowStyle="None"
        WindowState="Maximized" >
    <Grid >
        <view:ControlPanelView
            Margin="5, 0, 5, 0"
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch" >
        </view:ControlPanelView>            
    </Grid>
</Window>

ユーザーコントロール:

<UserControl x:Class="Mvvm.View.ControlPanelView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >

    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <TextBlock Grid.Row="0" TextAlignment="Right" Text="{Binding Total}" Margin="0,5,20,5" />
        <Button Grid.Row="1" Content="Test" Click="{Binding Path=OnClick}" Width="220" Height="100"/>
    </Grid>
</UserControl>
4

1 に答える 1