【发布时间】:2014-11-13 14:35:27
【问题描述】:
如何定义要在视图和模型中使用的数据格式?
我清楚地理解这里的 ViewModel 是什么从 Model 中获取数据,将其转换(如果需要)并提供给 View(以及相反的方向):
用户 格式化数据(转换器) 视图 转换后的数据(供通用视图使用) ViewModel 原始数据 型号
现在我的问题是什么?我想将 OperationProgress 从模型传递到视图:
class OperationStep
{
string _name;
bool _isError;
int _time;
...
}
class OperationProgress
{
List<OperationStep> _steps;
OperationStep _currentStep;
// int _currentStepIndex;
int _currentStepTime;
...
}
ViewModel 将OperationProgress 转换为一组可绑定属性(List<bool> 错误、当前步骤名称和时间倒计时),View 使用它们(和转换器!)向用户显示进度。
我愿意创建一个专门的控件来处理进度显示,以避免 ViewModels 中相同的可重复数据转换为原始类型。
但我不知道如何为控件定义数据格式...直接在View 控件中使用OperationProgress(将其暴露在 ViewModel 中并绑定到它)?创建ControlProgress(专门用于控制的进度数据)?但是,如果 ViewModel 必须将 OperationProgress 转换为 ControlProgress 有什么好处呢?在模型中使用ControlProgress(感觉不对)。
所以我来了。如果你们会做类似的事情(传递一堆数据,而不仅仅是 string 或 int,从模型到视图或相反方向)你会如何组织它?
【问题讨论】: