WPF交互触发器CallMethodAction

本文关键字:CallMethodAction 触发器 交互 WPF | 更新日期: 2023-09-27 18:29:51

我在视图部分使用了事件触发器,给出的代码如下。几乎所有的绑定都正确地与ViewModel类MainWindowViewModel绑定,但对于方法"CustomRibbonWindow_Loaded",其抛出的运行时异常如下:

Microsoft.Expression.Interactions.dll中出现类型为"System.ArgumentException"的异常,但未在用户代码中进行处理其他信息:在"MainWindow"类型的对象上找不到与预期签名匹配的名为"CustomRibbonWindow_Loaded"的方法。如果存在此异常的处理程序,则程序可以安全地继续运行

我已经尝试放置TargetObject="{Binding ElementName=RR}"以及TargetObject="{Binding}"。但这些似乎都不起作用。

我在VM中的方法如下,

private void CustomRibbonWindow_Loaded()
    {
       ...
    }

请指导如何解决。

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <si:CallMethodAction MethodName="CustomRibbonWindow_Loaded"/>
    </i:EventTrigger>
</i:Interaction.Triggers>

主窗口.xaml

<custom:CustomRibbonWindow x:Class="gDispatchApp.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:Fluent="clr-namespace:Fluent;assembly=Fluent"
    xmlns:custom="clr-namespace:gDispatchAppLib.Helpers.CustomUIControls;assembly=gDispatchAppLib"
    xmlns:DockUI="clr-namespace:DockingLibrary;assembly=DockingLibrary"
    xmlns:UserControls="clr-namespace:gDispatchAppLib.View.UserControls;assembly=gDispatchAppLib"
    xmlns:AppWindows="clr-namespace:gDispatchAppLib.View.AppWindows;assembly=gDispatchAppLib"
    xmlns:VM="clr-namespace:gDispatchAppLib.ViewModel.AppWindows;assembly=gDispatchAppLib"
    xmlns:VM2="clr-namespace:gDispatchAppLib.ViewModel;assembly=gDispatchAppLib"
    xmlns:PE="clr-namespace:gDispatchAppLib.ViewModel.CADQueues;assembly=gDispatchAppLib"
    xmlns:wpfHelper="clr-namespace:gDispatchAppLib.WPFHelpers;assembly=gDispatchAppLib"   
    xmlns:conv="clr-namespace:gDispatch.MvvmValidation.WPF;assembly=gDispatch.MvvmValidation"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:si="http://schemas.microsoft.com/expression/2010/interactions"
     Title="SERIS CAD"
      MinHeight="300"
                       WindowState="Maximized" HorizontalContentAlignment="Stretch"
    FlowDirection="LeftToRight" CaptionHeight="50"
                 IsIconVisible="False" WindowStyle="SingleBorderWindow"
                       xmlns:my="clr-namespace:System;assembly=mscorlib" 
                       x:Name="RR">
<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <si:CallMethodAction MethodName="CustomRibbonWindow_Loaded" TargetObject="{Binding ElementName=RR}"/>
    </i:EventTrigger>     
</i:Interaction.Triggers>
   ...
</custom:CustomRibbonWindow>

WPF交互触发器CallMethodAction

这样订阅方法。

private void Window_Loaded(object sender, RoutedEventArgs e) 
// add the proper parameters
{
    // code here
}  

以下是文档:链接

我也遇到了同样的问题。只要公开就行了。感谢您对另一个答案的评论:)

public void CustomRibbonWindow_Loaded()
相关文章:
  • 没有找到相关文章