gpt4 book ai didi

c# - WPF 交互触发器 CallMethodAction

转载 作者:行者123 更新时间:2023-11-30 16:09:55 26 4
gpt4 key购买 nike

我在给定代码的 View 部分使用了事件触发器,如下所示。几乎所有绑定(bind)都适用于 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
}

这是文档:Link

关于c# - WPF 交互触发器 CallMethodAction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26835703/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com