IValueConverter的推荐用途是什么?我已经将它用于将布尔属性转换为Visibility属性之类的东西,但我想知道你应该走多远?是否应该仅用于将常见类型的表示更改为UI特定类型(例如,bool到Visibility)。
,例如,如果我的班级中有一个属性,EmployeeID,如:
public class EmployeeViewModel : INotifyPropertyChanged
{
public int? EmployeeID
{
get
{
return employeeID;
}
set
{
employeeID = value;
RaisePropertyChanged("EmployeeID");
}
}
}
我希望显示该员工的详细信息,例如名称,位置,但要获得这些我需要访问数据库,将这个放入数值转换器是错误的吗?将值存储在ViewModel中并绑定到它们会更好吗?
答案 0 :(得分:2)
将值放在ViewModel中并进行直接绑定可能是更好的做法。虽然您可以在ValueConverter中执行此操作,但转换器的范围非常有限,这可能会限制您的功能。
我自己的一般规则是尝试将所有ValueConverters保持为两种类型之间的简单转换,即Bool to Visibility或Color to a Brush。这样,我没有在ValueConverters中包含太多逻辑,并且保持一切都更简单。