基本上,我一直认为您应该尽可能返回公开的基本类型,并担心内部的实现细节,这是有道理的......
但是,我不确定在这里做什么。基本上,现在我有:
ReadOnlyObservableCollection<Foo> MyFoos {get; private set; }
我想知道是否应该将其作为 aReadOnlyCollection<Foo>
或 an返回,ICollection<Foo>
因为在内部我从未真正使用任何可观察的部分或尝试写入集合。WPF 似乎不在乎我返回什么,它仍然绑定它并正确触发集合更改通知事件。但是,我在某处读到我应该设计它以真正让任何消费视图处理我的 ViewModel。
所以我在这里有点崩溃。我认为将其保留为ReadOnlyObservableCollection<T>
最有意义的是明确告诉消费视图他们可以对属性做什么和不能做什么,但我也觉得你应该在你的时候将类型减少到它们的基本类型能够。所以我不确定在这里做什么。尤其是 WPF 不关心我返回什么类型的事实,它发现它是可观察的。