首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用带有自定义路由事件的用户控件在caliburn micro中传递参数?

在Caliburn Micro中,可以使用自定义路由事件来传递参数给用户控件。下面是一种实现方式:

  1. 首先,创建一个自定义的用户控件,例如CustomControl,并在该控件中定义一个自定义路由事件,例如CustomEvent
代码语言:txt
复制
public class CustomControl : UserControl
{
    public static readonly RoutedEvent CustomEvent = EventManager.RegisterRoutedEvent(
        "Custom", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(CustomControl));

    public event RoutedEventHandler Custom
    {
        add { AddHandler(CustomEvent, value); }
        remove { RemoveHandler(CustomEvent, value); }
    }

    // 其他控件逻辑...
}
  1. 在使用该控件的视图中,可以通过在XAML中声明该自定义事件,并绑定一个事件处理方法来接收参数。
代码语言:txt
复制
<local:CustomControl>
    <local:CustomControl.Triggers>
        <EventTrigger RoutedEvent="local:CustomControl.Custom">
            <cal:ActionMessage MethodName="HandleCustomEvent">
                <cal:Parameter Value="参数值" />
            </cal:ActionMessage>
        </EventTrigger>
    </local:CustomControl.Triggers>
</local:CustomControl>
  1. 在视图对应的ViewModel中,实现HandleCustomEvent方法来处理该事件,并接收传递的参数。
代码语言:txt
复制
public void HandleCustomEvent(string parameter)
{
    // 处理传递的参数...
}

通过以上步骤,就可以在Caliburn Micro中使用带有自定义路由事件的用户控件来传递参数了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C# WPF MVVM开发框架Caliburn.Micro入门介绍①

02 以下是一个关于Caliburn.Micro简短列表: Action消息: 操作机制允许您将UI触发器(如按钮“单击”事件)“绑定”到视图模型或演示器上方法。该机制还允许向方法传递参数。...参数可以数据绑定到其他框架元素,也可以传递特殊值,例如DataContext或EventArgs。所有参数都会自动转换为方法签名。...这对于现有的Caliburn用户来说都是相当标准,但是我们Caliburn.Micro上做了一些改进,这将进入更大框架。...此外,我们将检查方法签名并正确构造ActionMessage参数。可以关闭或自定义此机制。您甚至可以更改或添加不同控件约定。...您可以开始使用Caliburn.Micro进行开发,然后,如果您遇到边缘情况或有其他需要转移到Caliburn,您将能够应用程序中进行少量更改或不进行任何更改。

1.8K20

Caliburn.Micro学习笔记(二)----Actions

上一篇已经简单说了一下引导类和简单控件绑定 我上一个例子里button自动匹配到ViewModel事件你一定感觉很好玩吧 今天说一下它Actions,看一下Caliburn.Micro给我们提供了多强大支持...,这就是控制buttonIsEnable属性这是Caliburn一个规则 2.有参数方法和控件元素绑定 有参数方法关联其实是一样 我们把上边例子做一下修改  先看一下效果图  三个button...source Caliburn.Micro提供了一些定义好参数(不区分大小写)供我们传递时用 ,当然我们也可以自定义我们自己参数 $eventArgs — — 将触发器 EventArgs 或输入参数传递到您行动...$this -行动所附加到实际用户界面元素   这个$this感觉和$dataContext没什么区别 如果想自定义参数可以写到用这个方法MessageBinder.SpecialValues进行扩展...这是Caliburn.Micro  Action源码,默认是Click和控件LeftMouseButtonDown事件,有时间你可以详细读一下它源码 ?

83890
  • C# WPF MVVM开发框架Caliburn.Micro常用功能指南②

    这是Caliburn.Micro项目中最常用约定和功能快速指南。 01 事件连接 这会自动将控件事件关联到ViewModel上方法。...可以像这样使用不同事件: 可以向方法传递不同参数,如下所示: <Button...这在主/详细场景中非常有用,主/详细场景,ActionMessage可能会冒泡到父VM,但需要携带要执行操作子实例。 $source 触发要发送ActionMessage实际框架元素。...$view 绑定到ViewModel视图(通常是用户控件或窗口)。 $executionContext 操作执行上下文,其中包含上述所有信息及更多信息。这在高级场景很有用。...$this 操作附加到实际UI元素。在这种情况下,元素本身不会作为参数传递,而是作为其默认属性传递

    79920

    C# WPF MVVM开发框架Caliburn.Micro关于关于Actions⑤

    当然,ActionMessage是这个标记特定于Caliburn.Micro部分。它表示当触发发生时,我们应该发送一条“SayHello”消息。...首先,我们现在使用是一个完全POCO类;这里没有INPC问题。其次,我们SayHello方法添加了一个输入参数。...$view 绑定到ViewModel视图(通常是用户控件或窗口)。 $executionContext 操作执行上下文,其中包含上述所有信息及更多信息。这在高级场景很有用。...但是,请注意,无论如何都可以使用扩展语法(基于System.Windows.Interactivity)填充参数自定义解析器轻松访问控件本身。...如果您主要在Xaml编辑器工作,而不是设计器工作,那么您会喜欢Message.Attach。请注意,Message.Attach声明都没有指定应该发送消息事件

    2.1K20

    C# WPF MVVM开发框架Caliburn.Micro 关于Conventions⑧

    在这里,您根ViewModel被传递给定位器,以确定应用程序shell应该如何呈现。Silverlight,这将导致设置或您RootVisual。WPF,这将创建主窗口。...您可能会选择使用以下一种有趣技术:如果视图是用户控件或窗口,则不必遍历元素树,而是使用一些反射来发现从FrameworkElement继承所有私有字段。...但是,了解这些约定是什么以及整个框架如何使用它们是很重要本文最底部是一个代码列表,它显示了如何开箱即用地配置所有元素。...因此,如果我们评级控件上有一个约定匹配,我们将针对ValueProperty设置绑定。第二个参数表示要在操作绑定中使用默认属性。...因此,如果您使用指向分级控件ElementName创建了一个操作绑定,但没有指定属性,那么我们将返回到“Value”属性。最后,第三个参数表示控件默认事件

    2.8K20

    C# WPF MVVM开发框架Caliburn.Micro IResult和协同程序⑥

    最后,它必须在模式对话框显示结果,并用另一个异步任务响应用户对话框选择。使用标准事件驱动异步模型实现这一点并不是一种愉快体验。然而,这是一个使用协同程序来完成简单任务。...利用Caliburn.Micro这一特性需要两件事:首先,某个类上实现IResult接口,表示您希望执行任务;其次,从Action2生成IResult实例。让我们更具体一些。...仅列出使用IResult实现可以做一些有趣事情:显示消息框、显示基于VM模式对话框、在用户鼠标位置显示基于VM弹出窗口、播放动画、显示文件保存/加载对话框、基于VM属性而非控件将焦点放在特定...您可以检查该对话框结果,如果用户取消了该对话框,请在事件参数上设置wascelected。...其他用途 现成Caliburn.Micro可以为通过ActionMessage调用任何操作自动执行协同路由。但是,有时您可能希望直接利用协同程序特性。

    48720

    C# WPF MVVM开发框架Caliburn.Micro快速搭建③

    01 启动项目 打开Visual Studio 创建一个名为“Caliburn.Micro.Hello”新WPF应用程序 添加对Caliburn.Micro Nuget包引用,最新版本是4.0.173...资源和它将完成其余工作。现在,运行应用程序。您应该看到如下内容: Caliburn.Micro创建了ShellViewModel,但不知道如何在没有视图情况下渲染它。...创建名为“ShellView”用户控件(WPF)。...您现在应该可以看到UI: 文本框中键入内容将启用该按钮,单击该按钮将显示一条消息: 03 工作原理 Caliburn.Micro使用一个简单命名约定来定位ViewModels视图。...您还可以看到,带有x:Name=“SayHello”按钮绑定到ViewMModel上具有相同名称方法。CanSayHello属性通过禁用按钮来保护对SayHello操作访问。

    1.5K20

    C# WPF MVVM开发框架Caliburn.Micro Screens, Conductors 和 Composition⑦

    虽然这些模式主要通过从特定基类继承ViewModels来CM中使用,但将它们视为角色而不是视图模型是很重要。事实上,根据您体系结构,屏幕可以是用户控件、演示者或视图模型。不过这有点超前了。...Caliburn.Micro实现 这些概念通过各种接口和基类CM实现,这些接口和基类主要用于构建ViewModels。...该方法是使用异步模式设计,允许在做出密切决策时发生复杂逻辑,如异步用户交互。调用方将向CanClose方法传递一个操作。实现者应该在保护逻辑完成时调用该操作。...之前,我们Caliburn.Micro讨论了屏幕和导体理论和基本API。现在,我将介绍几个示例第一个。此特定示例演示如何使用导体和两个“页面”视图模型设置一个简单导航样式shell。...将对象连接起来,以便可以导体打开不同视图模型。当激活每个视图模型时,确认选项卡控件中看到正确视图。 Silverlight重建此示例。

    2.6K20

    Caliburn.Micro学习笔记(一)----引导类和命名匹配规则

    用了几天时间看了一下开源框架Caliburn.Micro 这是他源码地址http://caliburnmicro.codeplex.com/ 文档也写很详细,自己在看它文档和代码时写了一些demo...和笔记,还有它实现原理记录一下 学习Caliburn.Micro要有MEF和MVVM基础 先说一下他命名规则和引导类 以后我会把Caliburn.Micro Actions IResult,IHandle...先看一下Caliburn.Micro大概流程,画不太好,先这样吧 ? 好了,我们开始今天笔记。...程序要引入三个类库 Caliburn.Micro System.Windows.Interactivity 和 System.ComponentModel.Composition 上边两个Caliburn.Micro...:给控件命名时候如txt_abc这样加下划线Calibrn会把这个名字分开 成txt和abc两个属性它会去txt属性里去找abc属性绑定 代码里打开子窗体是用Caliburn.Micro自己IWindowManager

    1.2K80

    C# WPF MVVM模式Caliburn.Micro框架下事件发布与订阅

    01 前言 处理同模块不同窗体之间通信和不同模块之间不同窗体通信,Caliburn提供了一种事件机制,可以应用程序中低耦合模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行通讯...Caliburn事件聚合器,这玩意实现原理是观察者模式,观察者模式也就是常说发布/订阅模式。...05 效果演示 06 源码 链接:https://pan.baidu.com/s/1IzA0FzOhnMTE0PCU1T9dLw 往期推荐 C# WPF框架Caliburn.Micro入门实例1 C#...C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号使用...C# 无意间写了一段线程死锁代码 C# 看懂这100+行代码,你就真正入门了(经典) C# WPF项目实战(经典) WPF 如何修改button圆角(经典) WPF XAML 为项目设置全局样式

    1.9K10

    C# WPF MVVM开发框架Caliburn.Micro自定义引导程序④

    01 自定义引导程序 在上一部分,我们讨论了Caliburn.Micro WPF应用程序最基本配置,并演示了与操作和约定相关两个简单功能。在这一部分,我想进一步探讨Bootstrapper类。...让我们首先将应用程序配置为使用IoC容器。本例我们将使用内置容器,但是Caliburn.Micro可以很好地处理任何容器。首先,继续学习第1部分代码。我们将以此为出发点。...这是Caliburn.Micro查找视图地方。您可以应用程序期间任何时候将程序集添加到此,以使它们可用于框架,但在引导程序也有一个特殊位置来执行此操作。...这些是我可能依赖于其他地方部分,所以我希望它们可以用于注入。我还注册了容器本身(只是个人喜好)。 配置完容器后,我们需要告诉Caliburn.Micro如何使用它。这就是后面三个覆盖目的。...继承时,应将“false”传递给基构造函数“useApplication”参数。这允许引导程序不存在Xaml应用程序实例情况下正确配置Caliburn.Micro

    94810

    C# WPF MVVM模式Prism框架下事件发布与订阅

    01 前言 处理同模块不同窗体之间通信和不同模块之间不同窗体通信,Prism提供了一种事件机制,可以应用程序中低耦合模块之间进行通信,该机制基于事件聚合器服务,允许发布者和订阅者之间通过事件进行通讯...05 效果演示 06 源码 链接:https://pan.baidu.com/s/1H3HtTRAZVS-FlReTe00yxQ 往期推荐 C# WPF框架Caliburn.Micro入门实例1 C#...WPF MVVM项目实战(进阶①) C# WPF MVVM项目实战(进阶②) C# WPF框架Caliburn.Micro快速搭建 C# WPF项目实战 C# WPF mvvm模式下combobox绑定...(list、Dictionary) C# WPF MVVM模式下在主窗体显示子窗体并获取结果 C# WPF Caliburn.Micro框架下利用Mef加载其它项目界面...C# WPF文本框TextEdit不以科学计数法显示 C# 通过正则表达式来限制控件输入有效性 C# datagridview、datagrid、GridControl增加行号 C# =>符号使用

    3.2K20

    WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单计算器

    之前时间一直使用Caliburn.Micro这种应用了MVVM模式WPF框架做开发,是时候总结一下了。...Caliburn.Micro(https://blog.csdn.net/lzuacm/article/details/78886436)是一个轻量级WPF框架,简化了WPF不少用法,推荐做WPF...比如本文将介绍如何使用Caliburn.Micro v3.2开发出一个简单计算器,里面用到了C#async异步技术,Caliburn.MicroConductor等等~ >>>1.VS创建...WPF项目<<< >>>2.使用NuGet包管理工具为当前项目安装Caliburn.Micro <<< 对于Caliburn.Micro 1.x和2.x版,只能使用.dll,需手动给项目加Reference...Caliburn.Micro绑定事件写法是: cal:Message.Attach="[Event E]=[Action A]" (E是操作,比如Click, MouseDown, KeyDown等等

    4.6K10

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单计算器 这段时间一直使用Caliburn.Micro这种应用了MVVM模式WPF框架做开发,是时候总结一下了。...Caliburn.Micro是一个轻量级WPF框架,简化了WPF不少用法,推荐做WPF开发时优先使用。...比如本文将介绍如何使用Caliburn.Micro v3.2开发出一个简单计算器,里面用到了C#async异步技术,Caliburn.MicroConductor等等~ Step 1: VS...Step 2: 使用NuGet包管理工具为当前项目安装Caliburn.Micro 对于Caliburn.Micro 1.x和2.x版,只能使用.dll,需手动给项目加Reference。...Caliburn.Micro绑定事件写法是: cal:Message.Attach="[Event E]=[Action A]" (E是操作,比如Click, MouseDown, KeyDown

    1.3K30

    【愚公系列】2023年02月 .NET CORE工具案例-Caliburn.Micro使用基于WPF改造MVVM案例

    文章目录 前言 1.Caliburn.Micro是什么 2.Caliburn.Micro主要功能 一、Caliburn.Micro使用基于WPF改造 1.项目介绍 2.安装软件包 3.改造App...是什么 Caliburn.Micro是一个微软开发用于构建WPF,Silverlight和Windows Phone应用程序MVVM(模型-视图-视图模型)框架。...2.Caliburn.Micro主要功能 Caliburn.Micro是一个小型MVVM框架,主要提供了以下功能: 简化MVVM模式实施 视图绑定 统一方式消息机制 基于事件和命令行为触发 支持视图导航...支持Windows Phone和Silverlight平台 Caliburn.Micro Github网址:https://github.com/Caliburn-Micro/Caliburn.Micro...Caliburn.Micro 官网:https://caliburnmicro.com/ 一、Caliburn.Micro使用基于WPF改造 1.项目介绍 HelloWorld:框架搭建

    1.1K20

    C# 制作指示灯(经典)

    群友提问:C#指示灯怎么做,改变状态有什么好方法吗?...制作指示灯方法有很多:比如: 通过GDI+绘制自定义LED指示灯控件; 调用现成第三方控件库; 采用label标签,通过改变背景色实现;等等 本文就以第三种方式展开讲解 01 实现效果 02 实现代码...Foreground="{Binding ForeColor}" /> 后台代码: ①安装PropertyChanged.Fody,using PropertyChanged;然后类前面添加...按钮启动指示灯,stop关闭指示灯; ③指示灯背景色改变通过独立线程控制,跨线程修改UI线程控件属性使用Caliburn.Micro框架下 Execute.OnUIThread(()=>{});实现...using System.Windows; using System.Windows.Media; using Brush = System.Windows.Media.Brush; namespace Caliburn.Micro.Hello

    1.9K20
    领券