MVVM Light, используйте RelayCommand <T>с методами, возвращающими данные - PullRequest
0 голосов
/ 15 октября 2019

Я экспериментирую с MVVM Light для приложения, которое получает данные от датчиков. Модель сенсора раскрывает свойства и методы. Некоторые из этих методов принимают аргументы и возвращают данные. Например,

public double GetVelocity(int AxisNo) 
{
     Do something;
     return double_data;
}

Как использовать RelayCommand<T> для передачи параметра из привязанного элемента управления и связывания возвращаемого значения с другим отображающим его элементом управления?

Спасибо.

1 Ответ

2 голосов
/ 15 октября 2019

Вы можете использовать CommandParameter для передачи параметра в команду.

Вы не можете вернуть значение, но вы можете установить свойство, которое вызывает NotifyPropertyChanged, и связать что-то с этим свойством.

Возвращение значения подразумевает, что представление имеет некоторый интеллект. Вам лучше думать о представлении, как о просто отображении состояния ViewModel, которое преобразует свойства модели в значения, подходящие для отображения.

Аналогичным образом, команды должны находиться во ViewModel, поскольку они не свойственны модели.

...