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

Silverlight数据绑定IValueConverter学习笔记

先回忆一下aspx处理: 在aspx,可以直接在后台定义一个变量,然后前台就可以用来将其"绑定"html控件上,比如下面这样,实在是很方便: using System; namespace...要想直接后台变量绑定某个控件上却是行不通,通常我们得先定义一个类,然后在类里定义属性,才能把类实例属性绑定控件: 简单绑定: 代码 using System; using System.Windows...="{Binding Test}"/> 这样就完成了功能最简单绑定,还想玩得更深入一点,比如实现OneWay,TwoWay方式绑定(不清楚绑定模式朋友,建议先参看https...绑定集合(数据集): 很多应用场合,数据来源不仅只有一个实例(或一条记录)--比如从数据库检索记录,这时如果想绑定数据并实现自动更新,应使用集合绑定(类似于aspxDataSet或DataTable...,都是数据原封不动绑定并显示,如果我们希望在绑定时,能对数据输出做一些变化,比如:代表性别的"1,0"输出希望变成"男,女",该怎么办呢?

89370

Silverlight Telerik控件学习:GridView双向绑定

做过WinForm数据库开发的人,一定有类似经历:DataGrid绑定后,如果允许行编辑,数据一顿修改后,想批量保存修改后结果,通常是DataGrid所有行遍历,用FindControl找出其中...TextBox之类控件,取值,然后处理,如果行模板控件变化了,可能之前处理代码又要修改... .Net发展WPF/SL时代,有了双向绑定,这种痛苦经历已经一去不返了,我们只需要关注数据即可,GridView...与数据源之间会相互通知各自变化情况,批量保存,不管GridView数据用户如何修改,也不用去理会行模板控件名是啥,直接对数据源进行处理即可。...x:Name="txtName" Text="{Binding Name,Mode=TwoWay}" VerticalAlignment="Center" Height="22">...x:Name="txtAge" Text="{Binding Age,Mode=TwoWay}" VerticalAlignment="Center" Height="22">

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

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

(简单讲,就是显示和功能难以拆分) 在WPF,通过引入模板(Template)微软数据和算法“内容”与“形式”解耦了。...这个UserControl由一个Monster类型实例在背后支持,设置这个实例时候,界面元素实例属性值显示在各个控件里。...不知大家还是否记得,为一个Binding只指定Path不指定Source,Binding会沿着逻辑树一直向上找、查看每个节点DataContext属性,如果DataContext引用对象具有Path...--每次写数据模板时候都会觉得它里面不是一些绑定了属性控件么,确实就是数据以各种控件展现出来--> ...GridView作为ListViewView属性,如果某一列使用TextBox作为CellTemplate,那么即使这列TextBox被鼠标单击并获得了焦点ListView也不会把此项作为自己

4.7K10

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

WPF,Silverlight和Windows Phone应用程序MVVM(模型-视图-视图模型)框架。...它提供了一系列工具和类,帮助开发人员更快,更轻松地构建美观和可维护应用程序。...2.Caliburn.Micro主要功能 Caliburn.Micro是一个小型MVVM框架,主要提供了以下功能: 简化MVVM模式实施 视图绑定 统一方式消息机制 基于事件和命令行为触发 支持视图导航...、容器注入相关 HelloWorld.Core;放置数据模型,即mvvmM HelloWorld.ViewModels:模型视图,即VM HelloWorld.Views:V,即视图 本项目是基于....WindowManager>() .Singleton(); //通过反射把下面三个程序集中vm结尾视图模型文件注册容器

95420

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

Caliburn.Micro是一个轻量级WPF框架,简化了WPF不少用法,推荐做WPF开发优先使用。...比如本文介绍如何使用Caliburn.Micro v3.2开发出一个简单计算器,里面用到了C#async异步技术,Caliburn.MicroConductor等等~ Step 1: 在VS...设计位置采用是左(operand 1), (operand 2), 右(result),于是属性值使用了Left, Right和Result。...,但我们可以对ViewModel进行适当调整: 1.创建新ViewModel - CalculatorViewModel,原来ShellViewModel具体计算逻辑移入CalculatorViewModel...> 好啦,就酱,由于本例逻辑并不复杂,Model暂时用不上,对于复杂一点项目,Model主要负责数据读取,如文件操作、数据库操作、

1.2K20

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

比如本文介绍如何使用Caliburn.Micro v3.2开发出一个简单计算器,里面用到了C#async异步技术,Caliburn.MicroConductor等等~ >>>1.在VS创建...设计位置采用是左(operand 1), (operand 2), 右(result),于是属性值使用了Left, Right和Result。...,但我们可以对ViewModel进行适当调整: 1.创建新ViewModel - CalculatorViewModel,原来ShellViewModel具体计算逻辑移入CalculatorViewModel...}"即可,而Bview是UserControl就可以啦。...> 好啦,就酱,由于本例逻辑并不复杂,Model暂时用不上,对于复杂一点项目,Model主要负责数据读取,如文件操作、数据库操作、

4.2K10

WPF依赖属性(wpf 依赖属性)

大家好,又见面了,我是你们朋友全栈君。 一、什么是依赖属性 依赖属性就是一种自己可以没有值,并且可以通过绑定从其他数据源获取值。依赖属性可支持WPF样式设置、数据绑定、继承、动画及默认值。...所有的属性都设置为依赖属性并不总是正确解决方案,具体取决于其应用场景。有时,使用私有字段实现属性典型方法便能满足要求。MSDN给出了下面几种应用依赖属性场景: 1....希望可在样式设置属性。 2. 希望属性支持数据绑定。 3. 希望可使用动态资源引用设置属性。 4. 希望从元素树父元素自动继承属性值。 5. 希望属性可进行动画处理。 6.... 10 11 3、在MainWindow.xaml里面引用新创建用户控件,并添加一个TextBox,用于输入颜色值,并将自定义依赖属性...MyColor绑定TextBox 1 <Window x:Class="WpfDemo.MainWindow" 2 xmlns="http://schemas.microsoft.com

2K20

FluentValidation在C# WPF应用

本文需要实现功能unsetunset 提供WPF界面输入验证,采用MVVM方式,需要以下功能: 能验证ViewModel定义基本数据类型属性:int\string等; 能验证ViewModel定义复杂属性...调研遇到问题unsetunset 简单属性:验证ViewModel普通属性比较简单,可以参考FluentValidation官网 ,或者国外holymoo大神代码: UserValidator.cs...复杂属性:我遇到问题是,怎么验证ViewModel对象属性子属性?...,FluentValidation调用就在这里,校验逻辑封装在StudentValidator,表单输入时会实时调用该处代码,columnName表示表单项列名,就是ViewModel绑定属性名。...验证器,注意前面使用RuleForEach表示关联集合项验证器。

13010

X--名称空间详解

Height="23" Width="75" />            这篇代码通篇没有出现一次名字,但是我们可以通过引用者层级关系来找到我们最终想要控件...引用着StackPanel实例,StackPanel.Children[0]又引用着TextBox实例。...注意: X:Name作用有两个: (1)告诉编译器,一个标签带有x:Name,除了为这个标 这个还真不能确定!签生成实例还要给这个标签声明一个引用变量,变量名就是x:Name值。...(2)XAML标签所对应Name属性(如果有)也设置为x:Name值,并把这个值注册UI树上,以方便查找。...在XAML文件,我们可以把需要多次使用类容提取出来放在资源字典,需要使用时候就用这个资源key这个资源检索出来。 x:key作用就是使用为资源贴上用于检索索引。

1.4K20

Silverlight:双向绑定综合应用-多集合依赖绑定

这是上一篇“Silverlight:双向绑定综合应用-自动更新集合汇总字段”续篇。需求场景如下: 一个公司,有N个员工,逢年过节时要搞一些抽奖活动,最终要公告收奖名单。...”必须从公司员工中选取,如果发现某位员工在公司员工库里没有登记,也可以在这个界面上员工列表临时添加。...即:下面网格员工“姓名下拉框”数据来源,依赖于上面网格员工姓名记录。...(类似数据库主从表关系) 为了实现这种绑定,需要创建二个ViewModel类 EmployeePrizeViewModel类,用来实现下面一个网格绑定,代码如下: using System.ComponentModel...Name="textBox1" Margin="5" Height="200" TextWrapping="Wrap" ScrollViewer.VerticalScrollBarVisibility

83660

Silverlight:双向绑定综合应用-自动更新集合汇总字段

要在界面上用网格显示所有员工姓名、工资,并且操作用户在网格里对员工进行增减或修改其工资,能自动汇总出员工工资总和并显示出来。...上,注册TextChanged或LostFocus事件,在输入值变化或失去焦点,去更新总和。...这是很容易想到办法,但是并不优雅,原因: 1、每行TextBox上都要去绑定事件,并在xaml.cs上写代码处理类似 TextBoxTotal.text = company.SalaryTotal...这样界面逻辑代码与UI绑得太紧,应对变化能力有限。比如以后TextBox换成其它形式控件,一旦并不支持TextChanged事件,原来代码就得修改。...这样一来,界面UI部分就轻松多了,只需要简单绑定即可。

93850

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

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

73620

《深入浅出WPF》学习笔记之深入浅出话Binding

指定源:控件需要关注自己、自己容器或者自己内部元素某个值   *ObjectDataProvider:数据源数据不是通过属性而是通过方法暴露给外界   *LINQ检索得到数据对象 下面通过实例分述每种情况...DataContext用法:   *UI上多个控件Binding同一个对象   *Source对象不能被直接访问——比如B窗体内控件想把A窗体内控件当做Binding源,但A窗体内控件是...以Slider为源,TextBox为目标   TextBox输入超出范围,边框会显示为红色   Binding默认只校验Target->Source,不校验Source->Target数据,如果想校验需要设置...但SliderValue是double,TextBoxText是string,Source端Path所关联数据与Target端目标属性数据类型不一致,我们可以添加数据转换器。...SourceTarget,Convert方法将被调用;反之,ConvertBack方法将被调用。

5.3K10

Silvelright:ListBox无法用Tab顺序切换内部元素焦点解决

默认情况下,Silverlight自带ListBox控件如果内部有多个TextBox,用户无法用键盘上Tab键,在ListBox内部TextBox之间切换。...但Teterik RadControls telerik:ListBox却很好解决了这个问题,只要把telerik:ListBoxIsTabStop设置成false,同时把TabNavigation...设置成Local即可(而SL自带ListBox就算设置了这二个属性,Tab键需要按二次才能切换焦点) 完整Xaml代码: <UserControl xmlns="http://schemas.microsoft.com...  意外惊喜:之前写过一篇博文,讲述了 Silverlight自带ListBox,无法应用BlendMouseDragElementBehavior(即...:应用该行为仍然无法拖动ListBox),但是telerik:ListBox发现居然可以(本例,用鼠标按住telerik:ListBox任一文本框边框,即可拖动整个ListBox)--商业控件就是给力

1.2K100
领券