你应该用什么IValueConverter?

时间:2010-06-24 13:57:28

标签: silverlight xaml ivalueconverter

IValueConverter的推荐用途是什么?我已经将它用于将布尔属性转换为Visibility属性之类的东西,但我想知道你应该走多远?是否应该仅用于将常见类型的表示更改为UI特定类型(例如,bool到Visibility)。

,例如,如果我的班级中有一个属性,EmployeeID,如:

public class EmployeeViewModel : INotifyPropertyChanged
{
  public int? EmployeeID
  {
    get
    {
      return employeeID;
    }
    set
    {
      employeeID = value;
      RaisePropertyChanged("EmployeeID");
    }
  }
}

我希望显示该员工的详细信息,例如名称,位置,但要获得这些我需要访问数据库,将这个放入数值转换器是错误的吗?将值存储在ViewModel中并绑定到它们会更好吗?

1 个答案:

答案 0 :(得分:2)

将值放在ViewModel中并进行直接绑定可能是更好的做法。虽然您可以在ValueConverter中执行此操作,但转换器的范围非常有限,这可能会限制您的功能。

我自己的一般规则是尝试将所有ValueConverters保持为两种类型之间的简单转换,即Bool to Visibility或Color to a Brush。这样,我没有在ValueConverters中包含太多逻辑,并且保持一切都更简单。