Свойства должны использоваться только для простого доступа к данным / элементам и никогда не должны представлять длительную операцию, такую как сетевой вызов. Метод гораздо более подходит для этого сценария.
Использование его в качестве метода может быть удобным сегодня для сценария вашего пользовательского интерфейса, но приведет к проблемам в будущем. Привязка непосредственно к методу не поддерживается так же просто, как свойства, потому что метод подразумевает операцию, которая, вероятно, не должна быть связана с пользовательским интерфейсом. Например, если основное сетевое соединение зависает, это приведет к прямому зависанию интерфейса пользователя. Это быстрый способ расстроить пользователей.
Вот альтернативный подход
- Вместо
IEnumerable<Users>
используйте BindingCollection<Users>
- Пусть
BindingCollection<Users>
запускается как пустой и ставит в очередь сетевой запрос для пользователей
- Когда сетевой запрос завершен, обновите
BindingCollection<Users>
найденными данными (убедитесь, что Invoke вернулись в поток пользовательского интерфейса)