簡體   English   中英

WPF交互觸發器CallMethodAction

[英]WPF Interaction Trigger CallMethodAction

我在給定代碼的View部分中使用了事件觸發器,如下所示。 幾乎所有綁定都與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>

MainWindow.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>

像這樣進行方法訂閱。

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

這里是文檔: 鏈接

我有同樣的問題。 只是公開。 感謝您對其他答案的評論:)

public void CustomRibbonWindow_Loaded()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM