博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据绑定(七)使用ObjectDataProvider对象作为Binding的Source
阅读量:6843 次
发布时间:2019-06-26

本文共 1971 字,大约阅读时间需要 6 分钟。

原文:

ObjectDataProvider就是把对象作为数据源提供给Binding,类似的还有XmlDataProvider,也就是把XML数据作为数据源提供给Binding,这两个类的父类都是DataSourceProvider抽象类

举例

有一个Calculator类,提供了一个Add方法

public string Add(string arg1, string arg2)        {            double x = 0;            double y = 0;            double z = 0;            if (double.TryParse(arg1, out x) && double.TryParse(arg2, out y))            {                z = x + y;                return z.ToString();            }            return "Error";        }
界面代码很简单,有三个输入框

后台代码:

ObjectDataProvider odp = new ObjectDataProvider();            odp.ObjectInstance = new Calculator();            odp.MethodName = "Add";            odp.MethodParameters.Add("0");            odp.MethodParameters.Add("0");            Binding bindingToArg1 = new Binding();            bindingToArg1.Source = odp;            bindingToArg1.Path = new PropertyPath("MethodParameters[0]");            bindingToArg1.BindsDirectlyToSource = true;            bindingToArg1.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;            Binding bindingToArg2 = new Binding();            bindingToArg2.Source = odp;            bindingToArg2.Path = new PropertyPath("MethodParameters[1]");            bindingToArg2.BindsDirectlyToSource = true;            bindingToArg2.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;            Binding bindingToResult = new Binding();            bindingToResult.Source = odp;            bindingToResult.Path = new PropertyPath(".");            textBoxArg1.SetBinding(TextBox.TextProperty, bindingToArg1);            textBoxArg2.SetBinding(TextBox.TextProperty, bindingToArg2);            textBoxResult.SetBinding(TextBox.TextProperty, bindingToResult);
首先定义了一个
ObjectDataProvider对象并与Calculator类的Add方法进行关联,把第一个输入框中的内容同函数的参数1进行绑定,第二个输入框中的内容同函数的参数2进行绑定,函数的返回值与第三个输入框绑定,BindsDirectlyToSource = true这句代码的意思是,Binding对象只负责把从UI元素收集到的数据写入其直接Source(即ObjectDataProvider对象)而不是被ObjectDataProvider对象包装着的Calculator对象,

转载地址:http://ghdul.baihongyu.com/

你可能感兴趣的文章
非orm的node.js 查询库
查看>>
4.原始类型优于封装对象
查看>>
node.js构建静态服务器
查看>>
WWDC 2018:IAP最佳实践并增强活动营销功能
查看>>
ng-notadd 0.10.1,基于 Angular7 和 material2 的中后台解决方案
查看>>
米筐三季度策略精选
查看>>
从零搭建React项目
查看>>
LAMP和LNMP加速与缓存优化
查看>>
解决scrollView上subView下移20point问题的一种方式
查看>>
定时任务与发送邮件
查看>>
前端面试之关于HTTP协议
查看>>
利用 Matplotlib 绘制数据图形(二)
查看>>
iOS概念攻坚之路(二):Runtime
查看>>
关于前端请求发送时间时而长时而短问题(stalled a lot)
查看>>
Python 工匠:编写条件分支代码的技巧
查看>>
记一次前端面试经历
查看>>
带你探索JUnit 5.4
查看>>
<暗时间> 时间, 不在于你拥有多少, 而在于你怎样使用
查看>>
Git的使用--如何将本地项目上传到Github
查看>>
单例 - iOS
查看>>