c# - 获取部分属性(property)的逻辑。好的做法?

标签 c# wpf data-binding properties

当将我的 xaml 数据绑定(bind)到某些数据时,我经常使用属性的“获取”部分来执行某些逻辑。就像给出列表的总和或检查是否有正数。

例如:

public List<SomeClass> ListOfSomeClass{get;set;}

public double SumOfSomeClass
{
  get
  {
    return ListOfSomeClass.Sum(s => s.Totals);
  }
}

public bool SumPositive
{
  get
  {
    if(SumOfSomeClass >= 0)
      return true;
    else
      return false;
  }
}

这样我就可以绑定(bind)到 SumPositive 和 SumOfSomeClass。这被认为是好的做法吗?即使它变得比这更复杂?或者调用一个方法并返回结果会更好吗?调用另一个类甚至数据库怎么样?

最佳答案

Property getters 应该是快速和幂等的(即不应在那里执行破坏性操作)。虽然遍历内存中的对象集合非常好,但我不建议在 getset 部分中进行任何繁重的工作。说到迭代,我仍然会缓存结果以节省几毫秒。

关于c# - 获取部分属性(property)的逻辑。好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/495864/

相关文章:

c# - WCF REST 服务能否支持对具有任意元素顺序的 XML 消息进行反序列化?

c# - mvc 5 从表中选择列表,DropDownList 的值为空

c# - WPF TreeView HierarchicalDataTemplate 获取 TreeViewItem

wpf - 如何让 WPF 的 DocumentViewer 释放其对源 XPS 文档的文件锁定?

.net - 了解 DataGrid 中的 ItemsSource 和 DataContext

绑定(bind)到 ObservableCollection<string> 的 Silverlight TabControl 在集合更改时不更新

c# - 未调用自定义 ASP.NET 属性

c# - 给定边界矩形、起始角和扫角,如何确定圆弧端点

wpf - 创建动画的非重复方式

javascript - 异步函数作为 knockout 绑定(bind)目标