[问题] WPF DataGrid 自定义与继承的问题

楼主: opdtk (拥抱失败)   2020-01-07 08:20:46
最近遇到公司的需求需要继承元件
虽然这样的设计逻辑似在网络爬文但目前没有找到比较好的解法。小弟感觉测试方面与耦合性都有很明显的缺点。使用起来继承性很差,有用了Dependency Property试着去写,但仍然遇到了一些问题
例子一:
鸟:会飞的动物
台湾鸟:鸟
美国鸟:鸟
欧洲鸟:鸟
韩国鸟:鸟
.
.
.
需求:假设发生了基因突变,鸟都变成6只脚,让所有国家的鸟都有办法继承,因为国家很多...所以要找一个方式不要去每个国家改。
实际的例子:假设订单模组下的
有好几二三十几个表单会同时使用同一组资源底下的DataGrid。该DataGrid的Column有金额、单价、数量等约末二十、三十字段。每个字段都预先写好了大部分共同的行为、操作。
需求:
表单一和大多数表单:的情况下是单价*数量=金额
表单二:是单价*数量*0.9(加权)=金额
表单三:单价*数量*0.8(加权)=金额

以上是一种行为的例子,比较像是overwrite的概念
问题:
假设今天欲在DataGrid上加入一个新的字段: “如产品名称”
1.该Cell点击可以开启一个产品详情视窗(open new window)
2.输入完“产品编号”后自动带出“产品名称”以及对应其他字段的默认值,例如“仓库字段”为默认仓
包括许多复杂的业务逻辑已经写好了。有没有方式让每一个表单都有办法去套用(继承)这个?因而不去改变每一个View和Viewmodel?
请问上述情况如何保持覆写的弹性?在wpf上有没有什么样的做法可以更好的解决这样子的需求?
先感谢大神们。
作者: testPtt (测试)   2020-01-07 08:35:00
我会习惯改VM加prop 如果不想改cs内容可以另外开partial
作者: s4300026 (s4300026)   2020-01-07 18:33:00
深入浅出 设计模式datagridview的callback呼叫你的权重处理class,即把ui和功能分开,不要把功能写在callback中

Links booklink

Contact Us: admin [ a t ] ucptt.com