gpt4 book ai didi

wpf - 使用 Caliburn.Micro 时对多个控件使用相同的方法

转载 作者:行者123 更新时间:2023-12-03 07:39:04 24 4
gpt4 key购买 nike

在 WPF MVVM 应用程序中,我需要多个控件具有相同的功能 - 例如某些按钮与某些菜单项执行相同的操作。使用 MVVM Light 的 RelayCommand 是小菜一碟,但我现在使用的是 Caliburn.Micro,其中几乎所有内容都基于约定。因此两个控件不能有相同的x:Name="AddItem",CM使用它来确定在ViewModel中执行的方法。有什么简单方法可以解决这个问题吗?

最佳答案

是的,它很简单,但很冗长。您需要使用“长格式”。假设您的 ViewModel 上有一个方法 IncrementCount:

// Handling event
public void IncrementCount()
{
Count++;
}

你的 View 有:

<Button Name="ButtonOne">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="IncrementCount" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

<Button Name="ButtonTwo">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cal:ActionMessage MethodName="IncrementCount" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>

两个按钮都会调用您的 IncrementCount 方法。

编辑

添加这些命名空间

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cal="http://www.caliburnproject.org"

您可能会看到这个Caliburn starting project使用上面的片段。

关于wpf - 使用 Caliburn.Micro 时对多个控件使用相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38998924/

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