在将我的xaml数据绑定到某些数据时,我经常使用属性的"get"部分来做一些逻辑.比如给出列表总数或检查是否有积极的总和.
例如:
public ListListOfSomeClass{get;set;} public double SumOfSomeClass { get { return ListOfSomeClass.Sum(s => s.Totals); } } public bool SumPositive { get { if(SumOfSomeClass >= 0) return true; else return false; } }
这样我就可以绑定到SumPositive和SumOfSomeClass.这被认为是好习惯吗?即使它变得比这更复杂?或者更好地调用方法并返回结果?调用另一个类甚至数据库怎么样?
物业获取者应该是快速且幂等的(即不应该在那里执行破坏性行为).尽管迭代内存中的对象集合是完全可以的,但我不建议在获取或设置部件中进行任何类型的繁重操作.说到迭代,我仍然会缓存结果以节省几毫秒.