2010-06-24 4 views
0

Какое рекомендуемое использование IValueConverter? Я использовал его для таких вещей, как преобразование логического свойства в свойство Видимость, но мне интересно, как далеко вы его возьмете? Предполагается, что он используется только для преобразования представлений об общих типах в конкретные типы пользовательского интерфейса (например, bool to Visibility).Для чего нужно использовать IValueConverter?

Е.Г., если у меня есть свойство в моем классе, EmployeeID, как:

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

и я хочу, чтобы отобразить данные для этого сотрудника, например, Имя, местоположение, но чтобы получить их, мне нужно будет попасть в базу данных, было бы неправильно помещать это в конвертер значений? Будет ли лучше хранить значения в ViewModel и привязываться к ним?

ответ

2

Возможно, было бы лучше применить значения в вашей ViewModel и выполнить прямые привязки. Хотя вы можете сделать это в ValueConverter, у вас очень ограниченная область в конвертере, и это может ограничить ваши возможности.

Мое общее правило для меня состоит в том, чтобы попытаться сохранить все мои ValueConverters как простые преобразования между двумя типами, то есть Bool to Visibility или Color to Brush. Таким образом, я не включаю много логики в ValueConverters и держу все проще в обслуживании.