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

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

最后,我们CanSayHello属性更改为一个方法,该方法具有操作相同的输入,但具有bool返回类型。...$view 绑定ViewModel的视图(通常是用户控件窗口)。 $executionContext 操作的执行上下文,其中包含上述所有信息及更多信息。这在高级场景很有用。...在视图中使用对另一个命名控件的引用而不是$this时,也会发生同样的情况。以下内容:使CM将名为“someTextBox”的文本框包含的文本传递给MyAction。...给智者的话 参数是一个方便的特性。它们非常强大,可以帮助你摆脱一些棘手的问题,但它们很容易被滥用。就我个人而言,我只在最简单的场景中使用参数。他们为我工作得很好的一个地方是登录表单。...例如,您可以TextBox.Text输入System.Double参数,而不必担心铸造问题。

2.1K20

Silverlight学习(二)

MVVM设计模式是指模型(Model)-视图(View)-视图模型(ViewModel),MVVM设计模式能够程序的UI设计和逻辑设计分开,这样能够节省开发人员的大量时间,也可以使代码更容易维护和升级等...command,可以绑定控件上 27 /// 28 public ICommand SubmitCommand { get; private set...--绑定ViewModel,获取上下文消息,这里面一般包括需要绑定的字段、类、方法等--> <vm:QuestionnaireViewModel...其中Button控件绑定了无参数的ICommand命令,后台为DelegateCommand。通过Button控件 我们可以获取到数据源的变化,并将它显示页面上。。...这样就玩一个了基本的Silverlight应用程序,本程序未设计数据库的交互,下一篇将会有所涉及。

739100
您找到你想要的搜索结果了吗?
是的
没有找到

WPF 从 用户控件 自定义控件

但是,由于这些属性一般具有重复性,所以和其它控件元素使用时一样,也就是如果在某个容器内有一系列相同元素,而且它们的很多属性也是会被设置为相同的,那么这时一般会在该容器的资源添加一个针对该元素的样式,而且一般不设置...下面描述一种给用户控件设置全局样式时不生效的情况及初步解决方法。...三、迁移为自定义控件 新建自定义控件: 修改名称后会生成一个继承自 Control(也可以自己手动改为 ContentControl 其它类型) 的类,还会在 Themes/Generic.xaml...文件(这个文件的资源会被自动加载)添加默认的样式: 自定义控件类的构造函数中就是指定了这个样式,来看看这个指定的语句: 也就是指定了 DefaultStyleKey 这个依赖属性的默认值: 然后就可以将之前的控件模板包括触发器拷贝过来了...,自带属性改为使用 TemplateBinding 进行绑定,依赖属性使用 Binding 进行绑定可以使用 Setter 设置默认值: (有个缺点:绑定的依赖属性在 Xaml 无法定位过去,这可能是

10510

Silverlight学习(三)

> 这里需要讲的重点是,Silverlight的MVVM设计模式前台代码和后台的完全分离。...OneWay,不是一次绑定的意思哈,它指的是单向的绑定控件值的改变不会影响数据源。比如DataGird,我们改动了某一个数据,但是他的数据源并没有变化,当我们再次加载的时候,它还是显示原来的数据。...在ViewModel可以进行一些数据库有关的操作和其他的相关操作。...若我们仍使用在构造函数实例化的userinfo对象,则会跑出异常。一个新的对象可以解决这样的问题。在插入成功后,通过lamda表达式来为属性重新赋值,使我们添加的数据能够及时的显示。...,后来通过重新加载的方法得意实现,不知道还有没有更好的方法

73480

在VisualStudio中提供运行时和设计时支持的WPF本地化解决方案

以上是检查任何区域性名称匹配的文件夹的application bin目录的一种相对快速的方法。...如果您想要本地化的属性是在用户控件之外(作为依赖项属性添加到代码隐藏文件)是可访问的,那么没有问题,您可以按照上面描述的那样本地化它们。...当您在UserControl添加一个绑定一个标签时,它将在运行时被正确地显示出来,在设计时(例如在Blend),当它被自己加载时也会被正确展示。...我理解,UserControl作为窗口的子控件加载时的问题是,设计器创建控件的实例,然后将其添加到窗口中。运行时可用的资源不存在,因为实例不是在窗口中创建的,因此上面的绑定失败,无法呈现控件。...添加到设计器本身,以便在初始化UserControl可以使用它们

1.9K20

《深入浅出WPF》——模板学习

(简单讲,就是显示和功能难以拆分) 在WPF,通过引入模板(Template)微软数据和算法的“内容”“形式”解耦了。...有两种办法可以在XAML代码中使用Converter: 把Converter以资源的形式放在资源词典里(本例使用的方法) 为Converter准备一个静态属性,形成单件模式(单例模式),在XAML代码里使用...传统的方法可能是创建一个UserControl并在TextBox外套上一个Border,然后还要声明一些属性和方法暴露封装在UserControl里的TextBox上。...ControlTemplate最终被应用到一个控件上,我们称这个控件模板目标控件模板控件(Templated Control),ControlTemplate里的控件可以使用TemplateBinding...(一般外部控件绑定是Binding,可见内部控件绑定外部控件还是做了一定区分的)将自己的属性值关联在目标控件的某个属性上,必要的时候还可以添加Converter。

4.7K10

WPF面试题-来自ChatGPT的解答

通过使用 xmlns,可以引用其他命名空间中定义的类型和成员,并在 XAML 文件中使用它们。 14. 我们什么时候应该使用“x:Name”和“Name”?...开发者可以将用户的操作封装成命令,并将绑定视图的控件上。这样可以将用户的操作和业务逻辑解耦,使得代码更加清晰和可维护。 可测试性:MVVM模式的分离性和数据绑定机制使得代码更容易进行单元测试。...WPF框架会根据可视化树来确定UI元素的位置和大小,并将它们渲染屏幕上。 逻辑树是另一个层次结构,它描述了UI元素之间的逻辑关系。逻辑树用于处理UI元素的事件和命令。...每个UI元素都有一个逻辑元素和零个多个逻辑子元素。逻辑树的元素通常可视化树的元素相对应,但并不完全相同。 逻辑树的元素通常是逻辑控件它们是WPF框架提供的一种特殊类型的UI元素。...通过依赖属性,可以实现属性之间的数据流动,当依赖属性的值发生变化时,绑定它的其他属性控件也会自动更新。 样式和模板:依赖属性可以样式和模板一起使用,实现对控件外观和行为的定制。

31730

Avalonia的自定义用户组件

自定义用户控件UserControl)是Avalonia中一种重要的组件,它允许我们多个控件组合成一个可重用的单元。...本文介绍如何在Avalonia定义和使用自定义用户控件,并展示如何定义自定义事件属性。 定义自定义用户控件 首先,我们需要定义一个自定义用户控件。...Button的Click事件绑定到了OnButtonClick方法上,这个方法将在后面的C#代码定义。...在这个方法,我们改变了文本框的内容,并触发了自定义事件。 使用自定义用户控件 现在,我们可以在其他地方使用这个自定义用户控件了。...处理自定义事件 要在控件其他组件处理自定义事件,我们需要在相应的C#代码添加事件处理程序。

12910

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

在ViewModel First,我们有一个需要渲染屏幕上的现有ViewModel。为此,CM使用一个简单的命名模式来查找UserControl1,它应该绑定ViewModel并显示它。...ViewModelBinder所做的最后一件重要事情是确定是否需要创建任何常规属性绑定操作。为此,它在UI搜索绑定/操作的候选元素列表,并将ViewModel的属性和方法进行比较。...如上所述,ViewModelBinder“在UI搜索绑定/操作的候选元素列表,并将ViewModel的属性和方法进行比较。”...5基本上,该方法有两个功能。首先,它确定了要在其中搜索元素的范围。这意味着它将遍历树,直到找到合适的根节点,例如窗口、UserControl没有节点的元素(表示我们在DataTemplate)。...因此,如果我们在评级控件上有一个约定匹配,我们针对ValueProperty设置绑定。第二个参数表示要在操作绑定中使用的默认属性。

2.7K20

ASP.NET重用代码技术 – 用户控件技术

我们发现,利用代码绑定技术我们可以容易的将我们的代码和内容分离开来,利用它可以建立可重用的代码,只是这种技术本身也存在着一些局限性。...我们可以容易的结果当作一个属性返回并且使用DataSource属性绑定一个DataGrid控件或者其他的控件。但是,我们如何才能知道用户是否是点击了一个搜索按钮呢?...通过检测page.ispostback是否等于true,我们可以决定是否调用我们的用户控件的Search方法,然后结果绑定到我们的datagrid。  ...objArgs)   '结果绑定DataGrid控件上面   grdGrid.datasource = userControl.ResultSetView   '正式绑定数据   grdGrid.databind...一些在ASP.NET的代码拖放到ASCX文件中使得他们能够被重新利用是个正确的选择和做法。   在我们的文章,我们一同探讨了通过定制的控件实现代码在ASP.NET的重用。

2K20

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

虽然这些模式主要通过从特定基类继承ViewModels来在CM中使用,但将它们视为角色而不是视图模型是很重要的。事实上,根据您的体系结构,屏幕可以是用户控件、演示者视图模型。不过这有点超前了。...它有一个名为Parent的属性。 IViewAware–由需要了解其绑定的视图的类实现。它有一个AttachView方法,框架在视图绑定实例时调用该方法。...主要区别在于,单个项目同时处于活动状态不同,许多项目可以处于活动状态。关闭项目停用该项目并将其从集合移除。 关于CMs IConductor实现,我还没有提到两个非常重要的细节。...额外好处:创建一个DSL来完成这项工作,它不需要在激活覆盖中使用显式代码。提示:使用事件。 取SimpleMDI样本和SimpleNavigation样本,并将它们组合在一起。...一般来说,组合是面向对象编程最重要的方面之一,学习如何在表示层中使用它可以带来很大的好处。为了了解构图在这个特定示例的作用,让我们看两个屏幕截图。

2.5K20

了解模板控件(1):基础知识

通过为控件赋予新的ControlTemplate,可以控件创建全新的外观。在下面的例子,通过ControlTemplateButton改成一个圆形按钮。...ControlTemplate赋值Control.Template即可改变控件的外观。ControlTemplate的TargetType需要和使用它控件匹配。...1.2 模板控件 可以使用ControlTemplate的控件即为模板控件(TemplatedControl),在UWP,所有派生自Control的控件(除了UserControl)都是模板控件...,例如Button、ComboBox等,它们的大部分都有默认的ControlTemplate。...可以不存在DefaultStyle,所以某些场合会把模板控件称为“无外观控件”。 2. 创建第一个模板控件 下面介绍如何使用VisualStudio在一个新项目中创建一个模板控件。 ?

66430

WPF面试题大全,秒杀面试官必备

它根据它们的逻辑层次结构(例如窗口包含面板、控件和其他UI元素)定义UI元素之间的关系。 依赖属性:依赖属性是WPF一个关键概念。它们允许UI元素具有可以设置、获取绑定其他属性的属性。...答:在WPF,Binding是一种用于数据用户界面元素关联起来的功能。它可以数据源的值绑定用户界面元素的属性,从而使数据源的值自动更新到用户界面元素。...7、阐述WPF什么是模板? 答:WPF模板一种用于定义控件外观的机制。它可以使用XAML代码来定义。在XAML模板可以定义在Template元素。...在C#代码,编写查询数据库的代码,并将结果绑定DataGrid控件上。可以使用SQLDataAdapter和DataSet来执行查询并获取结果集。...查询结果填充到DataSet对象并将DataSet的表绑定DataGrid的ItemsSource属性上。

44010

【我们一起写框架】MVVM的WPF框架之序篇(一)

但在资金有限,人员有限的二三线城市,能遇到这样脑残的领导老板的概率不高。 虽然架构师不是人人都能做,但框架是可以先学会编写的,毕竟这是个基础。有了基础,就算不能年轻有为,但起码有个机会。...WPF项目控件UserControl)以UC作为前缀名创建,如UCTable,UCXXX。 WPF的窗体、页面、控件有且只有一个ViewModel。...在WPF项目中创建WindowMain窗体,并在VM创建对应的ViewModel。...很简单,只要在主窗体的ViewModelnew那个想要运行的窗体的VM,然后Show一下就可以了。...但Page和UserControl是被Window使用的,不能直接呈现,所以,在使用Page和UserControl之前,我们需要编写MVVM框架,用于在WPF页面和ViewModel传递信息的Command

2K30

创建可维护和可测试的 Windows 窗体应用程序的 10 种方法(译)

如果这些区域中的每个区域的控件放入它们自己的容器,那么你自己的生活就会变得更加轻松,而在 Windows 窗体,最简单的方法是使用用户控件。...同样,如果你有选项卡控件,请为选项卡控件的每个页面创建一个单独的 UserControl。 这样做不仅可以防止你的类变得难以管理,而且还可以调整大小和设置Tab 键顺序等,使任务变得更加简单。...你还会发现,当你将用户界面分解为包含逻辑分组控件的较小 UserControl 时,重新设计应用程序的 UI 布局会变得更加容易。 2....你的命令对象将有一个 Execute 方法,该方法实际上包含为该命令执行所需行为的代码。在许多情况下,这将涉及调用其他对象和业务服务,因此你需要将它们作为依赖项注入命令对象。...如果你的应用程序有多个屏幕,则可以“导航”消息发布事件聚合器,然后订阅者可以通过确保新屏幕显示在用户界面来响应该消息。

1.3K10

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

01 事件连接 这会自动控件上的事件关联ViewModel上的方法。 常规约定: 这将导致按钮的单击事件调用ViewModel上的“Save”方法。...这在主/详细场景中非常有用,在主/详细场景,ActionMessage可能会冒泡VM,但需要携带要执行操作的子实例。 $source 触发要发送的ActionMessage的实际框架元素。...$view 绑定ViewModel的视图(通常是用户控件窗口)。 $executionContext 操作的执行上下文,其中包含上述所有信息及更多信息。这在高级场景很有用。...02 数据绑定 这将自动控件上的依赖项属性绑定ViewModel上的属性。...常规约定: 导致TextBox的“Text”属性绑定ViewModel的“FirstName”属性。

73520

【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

值转换器充当目标和源之间的桥梁,当目标一个绑定数据类型不一致时,需要值转换器来做中转。例如有一个文本框和一个按钮控件, 当文本框的文本被填充或为空时,希望启用禁用按钮控件。...样式在控件上设置属性。 ControlTemplate 是大多数控件的属性,用于指定它们的呈现方式。 详细地说,可以使用一种样式对一组属性的设置进行分组,以便重新使用它来标准化已有控件。...它们通过数据绑定和依赖属性多个属性进行通信。 ViewModel 是一个非可视类。 MVVM 设计模式不派生自任何基于 WPF 的类。 ViewModel 不直接知道View。...26.什么是MVVM?MVVM(Model View ViewModel)是一个在WPF制作应用的框架。 MVVM MVC 框架相同。 它是一个三层架构,我们可以使用 MVVM 进行松耦合开发。...)尽量不要使用它们的任何一个,如果必须使用,可以 ContentPresenter 优先如果需要创建一个承载内容的自定义“无外观”控件,并且无法通过更改现有控件模板(这应该是非常罕见的)获得相同的结果

42622

Silverlight数据绑定IValueConverter学习笔记

先回忆一下aspx的处理: 在aspx可以直接在后台定义一个变量,然后前台就可以用来将其"绑定"html控件上,比如下面这样,实在是很方便: using System; namespace...要想直接后台的变量绑定某个控件上却是行不通的,通常我们得先定义一个类,然后在类里定义属性,才能把类实例的属性绑定控件: 简单绑定: 代码 using System; using System.Windows...绑定集合(数据集): 很多应用场合,数据来源不仅只有一个实例(一条记录)--比如从数据库检索的记录,这时如果想绑定数据并实现自动更新,应使用集合绑定(类似于aspx的DataSetDataTable...> 也许您注意到了IValueConverter的Convert方法,还能传入参数!...我们可以利用这个玩点小花样,比如界面上有三个矩形,其中"矩形2的宽度"等于"矩形1的宽度"+"一个任意指定的固定值",矩形3的宽度矩形1矩形2的宽度总和,不允用 rect2.width = rect1

89170

如何让 WPF 程序更好地适配 UI 自动化

容器布局类的控件并没有暴露给 UI 自动化(例如 Grid、StackPanel、Border 等,并没有出现在自动化测试)。 用户控件UserControl)暴露给了 UI 自动化。...列表绑定一个源(ItemsSource),而这个源集合的每一个项都是 ViewModel 的一项(例如 Walterlv.Demo.DemoItem 类型),这个类型没有重写 ToString...如果某个 ViewModel 集合会被绑定 UI 列表,这个 ViewModel 应该重写 ToString() 方法,返回对用户可读的有用的信息(不要像控制台输出一样一股脑把所有属性打印出来)...如果没有文字描述的按钮图像在列表,请为其设置 AutomationProperties.Id 属性绑定一个能区分彼此的信息作为唯一 Id,然后设置 AutomationProperties.Name...如果一定要做特别的控件交互(没有任何现有控件可以代表这个交互方式),那么充分利用用户控件UserControl)会自动暴露给 UI 自动化的特点,做一个用户控件

36020

Silverlight:Dependency Property(依赖属性)学习笔记

但反过来想想,通常我们在使用一个控件/对象时,往往只用到了某几个属性,大部分属性(有时候甚至达到90%以上)都是采用的默认值(或者也可以理解为没有用到),这对于WPF/SL来说无疑是一种极大的性能损耗。...所以在此背景之下,DP(Dependency Properties的简称)就出现了,我们再回想一下静态(static)方法成员,静态成员/方法的调用不依赖于实例,它是class级别的,不管这个类有多少个实例...这张图描述了GetValueSetValue的内部读取策略. 4.依赖属性的使用示例: 下面我们演示如何给一个用户自定义控件添加Message依赖属性 (1)先建一个Silverlight User...> CS部分:(技巧:vs2008,只要键入propdp,再连敲二次Tab键,vs就会自动添加一个依赖属性的代码模板) using System.Windows; using System.Windows.Controls...MyControl控件的Message属性值,同时MyControl的文本控件的文字也变成"新值" 转载请注明来自菩提树下的杨过 文中源文件代码:DPStudy.rar

65670
领券