WPF Interaction Trigger CallMethodAction

1

У меня есть триггер запуска события в моем представлении, как указано ниже. Почти все привязки корректно относятся к классу ViewModel - MainWindowViewModel, но для метода "CustomRibbonWindow_Loaded" его исключение для выполнения броска, например:

Исключение типа "System.ArgumentException" произошло в Microsoft.Expression.Interactions.dll, но не обрабатывалось в коде пользователя. Дополнительная информация: Не удалось найти метод с именем "CustomRibbonWindow_Loaded" на объекте типа "MainWindow", который соответствует ожидаемой сигнатуре. Если для этого исключения есть обработчик, программа может быть безопасно продолжена.

Я попробовал поставить 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>
Теги:
wpf
triggers

1 ответ

2

Сделайте подписку на этот метод следующим образом.

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

Вот документация: Ссылка

  • 6
    Нет, но я обнародовал это и начал работать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню