我有WPF DataGrid从Web服务获取他的数据。最终用户可以在DataGrid中自定义可见列。
第一种方法:
我在xml中获取此数据,并在将xml转换为dataTable后将其提供给DataGrid的ItemsSource。
第二种方法:
此外,我可以从服务中获取类数组(例如Customer [])
问题:
我使用第一种方法进行额外步骤,目的是不从服务中获取冗余数据。 在第二种方法中,如果用户在DataGrid中只看到两列(类中一个属性的一列),他将获得具有所有填充属性(冗余数据)的所有类。在第一种方法中,他只获得数据xml,这将在UI中的数据网格中可见。
但我在我的项目中使用MVMM方法,我不想使用xml和dataTable方法。我想我必须使用第二种方法,但在这种情况下我得到了冗余数据
答案 0 :(得分:1)
在第二种方法中,如果用户在DataGrid中只看到两列(类中一个属性的一列),他将获得所有具有所有填充属性的类(冗余数据)
如果以上是唯一阻止您使用第二种方法的东西,那么C#v4.0具有Named and Optional Arguments功能。这适用于
Console.WriteLine(Calculate(weight: 123, height: 64));
即使实际的Calculate()
有99个参数,with any order。
请注意,我认为,冗余是指不需要的数据。
答案 1 :(得分:0)
我会采用第二种方法,即使这可能会传输更多的数据。如果你真的想要控制哪些字段被提取,这可能会使你的应用程序变得更复杂,然后是必要的。
您是否确认第二种方法存在性能问题?
答案 2 :(得分:0)
这是我们在开发软件时经常遇到的另一种权衡。
在您的具体情况下,
通过不使用强类型数据方法,通过在网络和灵活性上传输更少(不确定是否真的很多)数据,第一种方法具有性能优势。
从长远来看,第二种方法更易于管理和轻松开发。
要选择正确的方法,您应该考虑并加权非功能性需求,例如性能,可扩展性,可管理性等。