0

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

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

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

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

4

1 回答 1

2

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

我对自己的一般规则是尽量将我所有的 ValueConverters 保持为两种类型之间的简单转换,即 Bool 到 Visibility 或 Color 到 Brush。这样一来,我不会在 ValueConverters 中包含太多逻辑,并使所有内容更易于维护。

于 2010-06-24T14:12:32.253 回答