По сути, я всегда понимал, что вы должны возвращать базовые типы expose всякий раз, когда можете, и беспокоиться о деталях реализации внутри, что имеет смысл ...
Но я не уверен, что делатьделай здесьПо сути, сейчас у меня есть:
ReadOnlyObservableCollection<Foo> MyFoos {get; private set; }
Мне интересно, должно ли это быть возвращено как ReadOnlyCollection<Foo>
или ICollection<Foo>
, потому что внутренне я никогда не использую какие-либо наблюдаемые части или пытаюсь записать вколлекция.WPF, кажется, не волнует, что я возвращаю, он все еще связывает его и правильно запускает событие уведомления об изменении коллекции.Но я где-то читал, что мне нужно спроектировать это так, чтобы в моем ViewModel действительно работал любой потребляющий вид.
Так что я немного растерян.Я думаю, что оставляя его как ReadOnlyObservableCollection<T>
, имеет смысл явно указать потребляющему представлению, что они могут и не могут сделать со свойством, но у меня также сложилось впечатление, что вы должны уменьшить количество типов до их основы.типы, когда вы можете.Так что я не уверен, что здесь делать.Особенно учитывая тот факт, что WPF не волнует, какой тип я возвращаю, он обнаруживает, что его можно наблюдать.