我有一个返回的函数 Class1Model
Class1Model model = GetClass1Model();
我还有一个Class1ViewModel
继承自Class1Model
的,我添加了一些仅获取属性以在视图中进行格式化。
public class Class1ViewModel : Class1Model
{
public string MyFormattedProperty => $"{base.Height:###.00} x {base.Width:###.00}"
}
所以我希望我能做到这一点:
Class1Model model = GetClass1Model();
var viewModel = model as Class1ViewModel;
但这不起作用
那么这通常是如何完成的呢?
我建议使用组合方法而不是继承。
class Class1Model
{
// model properties
}
class Class1ViewModel
{
public Class1ViewModel(Class1Model model)
{
_Model = model;
}
private Class1Model _Model;
public Class1Model Model { get { return _Model; } }
// viewmodel specific extensions
public string MyFormattedProperty => $"{Model.Height:###.00} x {Model.Width:###.00}"
}
如果您希望模型属性发生更改,您应该使用一些弱事件侦听器订阅模型属性更改,并为相关视图模型属性发出适当的属性更改事件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句