在viewmodel上通知对象属性的预期类型的​​WPF

时间:2015-11-12 14:27:21

标签: c# wpf mvvm data-binding

假设我有一个viewmodel,它公开了P类型的双向可绑定属性object。但是假设我确实期望一个具体的类型,但我不知道在运行之前会是什么。有什么方法可以通知WPF,例如通过第二个属性,P的预期类型,因此当P由于某些UI操作(TextBox输入)而设置时,框架可以执行自己的内置类型转换?我更喜欢在VM端而不是在XAML中执行此操作,因此VM使用者不需要知道任何异常情况正在发生。

以下是一个示例,说明了这种情况可能发生的方式:

class ViewModel : ViewModelBase
{
   private readonly object _obj;
   private readonly PropertyInfo _prop;

  public ViewModel(object obj, PropertyInfo prop)
  {
     _obj = obj;
     _prop = prop;
  }

  public object P
  {
    get { /* return value of _prop on _obj */ }

    set { /* set _prop on _obj to value,
             but I have to convert from string manually */ }
  }

  public Type ExpectedType => _prop.PropertyType;
}

是否(例如)我可以在ExpectedType上设置任何类型的属性,或者我可以使用的魔术名称,这将告诉WPF它返回我期望的{{1}类型}?

0 个答案:

没有答案