我有一个 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>