我有一个带有图像和按钮的堆栈面板。我想在用户单击 stackPanel 中的按钮时触发事件。我在 xaml 中的代码是
<StackPanel x:Uid="TemperatureMonitor" Orientation="Horizontal" HorizontalAlignment="Left" ToolTip="{DynamicResource InstrumentZweiMesswert}" Height="35">
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseLeftButtonDown">
<ei:CallMethodAction TargetObject="{Binding}" MethodName="OnAddUserControl"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Image Width="35" Height="35" x:Uid="Image_15" Source="/Resources\png\TemperatureMonitor.png"/>
<Button x:Uid="TemperatureMonitor" Content="Temperatur Monitor" x:Name="TemperatureMonitor" IsEnabled="True" Width="135"/>
</StackPanel>
我的 viewModel 中的 OnAddUserControl 方法是
public void OnAddUserControl(object sender, RoutedEventArgs e)
{
//some code
}
我没有进入 OnAddUserControl 的问题。任何想法为什么?
当用户在按钮上单击 leftMouseClick 时,我想触发此事件。所以我不知道为什么,但 RelayCommand 也无济于事,也不会触发 OnAddUserControl 方法。当我将迭代代码移动到我的按钮时,它看起来像这样:
<StackPanel Background="Black" x:Uid="TemperatureMonitor" Orientation="Horizontal" HorizontalAlignment="Left" ToolTip="{DynamicResource InstrumentZweiMesswert}" Height="35">
<Image Width="35" Height="35" x:Uid="Image_15" Source="/Resources\png\TemperatureMonitor.PNG"/>
<Button x:Uid="TemperatureMonitor" Content="Temperatur Monitor" x:Name="TemperatureMonitor" IsEnabled="True" Width="135" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseLeftButtonDown">
<ei:CallMethodAction TargetObject="{Binding}" MethodName="OnAddUserControl"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</StackPanel>
我在运行时出现错误,提示“对于对象类型“DockSite”找不到方法名“OnAddUserControl”。我将不胜感激任何想法或帮助