Re: [问题] 大量变量对应至大量Control

楼主: StupidGaGa (笨嘎嘎)   2014-05-15 20:21:00
※ 引述《james732 (好人超)》之铭言:
: 首先要谢谢您的回复,我想是我没有说清楚...orz
: 我的UI实际上是这个样子的: http://imgur.com/5hNCp1L.png
: (工作上的东西,请恕我涂黑)
: Raw Data 是从 Binary File 里面读出来的一大串 byte array
: 每个Control的资料,有可能是这些来源之一:
: (1) Raw Data 的某个 byte,显示在 TextBox 上 => 10进位或16进位显示
: (2) Raw Data 的某个 byte 的某一个 bit => 做为 CheckBox 是否勾选
: (3) Raw Data 的某个 byte 里的某一些 bit => 做为 ComboBox 的 Index 选项
: (4) Raw Data 里的多个 byte 组合成一个16位元或32位元的无号数 => TextBox 显示
: 这样的资料有好几个Page,所以项目相当的多,而且没有规则
: 我想问的是,Raw Data与Control之间要怎么互动是最好的
: RawData读出来可以正确的显示在Control上
: Control上的改变也可以回写至Raw Data
本来想推文,后来发现会写很多就算了。
简单一句话:取联集。
或者详细点的,
依照你的意思,我理解成这样,
1. 一个RawData就是一笔资料
2. 一个RawData的不同Byte用不同的Control去显示
3. 一个RawData的多个Byte可以组合成一个资讯,让Control去显示
如果换成程式码的话,我的理解是这样,
1. 一个RawData就是一个物件
2. 每个不同的Byte当成是一个基本属性(最高温度、最低温度)
3. 多个基本属性可以运算成另一个属性(如:平均温度=(最高温度+最低温度)/2)
4. 每个属性都有一个Control去显示
我的作法是,
一个RawData所有需要的显示的属性都算出来,
再来看你想怎样的显示方式。
1. 把所有要显示的control都集合成一个,然后全部用DataGridView都显示。
不管你是最高温度、最低温度、湿气、紫外线、平均温度…
不管其他资讯要不要,我一次都处理好全部显示给你。
2. 如果显示样板数量有确认,如固定10个样板
根据不同样板给予不同资料。
如:你有温度显示样板,紫外线显示样板,你点选什么样版我就给你怎样资讯。
不管怎么做,你一个RawData所需要的资讯一定要全部算出来。
资料与显示页面的连动部分,
可以利用控件的Eevent、INotifyPropertyChanged、Binding,
方法很多选个你喜欢的。
作者: james732 (好人超)   2014-05-15 20:33:00
谢谢您的回复,我再想想看要怎么做比较好其实我的问题主要是在资料量很大的情况下,怎么做比较好目前大量的Property以及大量的Control Binding我自己都觉得弄错了很难找问题....
作者: Ammenze (蓝天白云)   2014-05-15 22:27:00
资料多的control binding用grid最好主要就是找出部分规则配例外处理
作者: Eleganse (艾勒更斯)   2014-05-15 22:45:00
看了一下 主要问题出在J大针对每一个档案都new了一个class form出来对应 实际上应该要用grid view中的row就好gridview中的每一个row 都可以放你想要放的所有子控件
作者: james732 (好人超)   2014-05-16 06:55:00
以我目前的ui配置,我不知道要怎么改用datagridview...我目前只会用基本的datagridview,把List做为datasource显示出来谢谢您的费心说明,我会再多用功的XD
作者: Eleganse (艾勒更斯)   2014-05-16 18:30:00
把gridview从工具箱拉出来后 切到原码画面去看(也就是切过去后 视窗会警告你不要乱改的那页)把你放到class form里面那些checkbox、combobox控件塞到gridview里面去 让gridview去帮你代劳展这数千个form当然gridview会帮你展成一列一列的row 而不是form
作者: james732 (好人超)   2014-05-16 21:46:00
好的,我再仔细看看那边自动产生的code

Links booklink

Contact Us: admin [ a t ] ucptt.com