Я использую WPF и шаблон MVVM в своем пользовательском интерфейсе. В моей ViewModel у меня есть список, содержащий расстояния в миллиметрах, которые я отображаю в ListView, привязывая ListView.ItemsSource к списку. Однако мне бы хотелось, чтобы отображаемые значения использовали более естественную единицу измерения - метры или футы в зависимости от состояния флажка «метрика».
Я написал пару простых классов, MillimetresToMetresConverter и MillimetresToFeetConverter, которые реализуют IValueConverter. Хотя я могу установить свойство Converter для моей привязки данных к одному или другому, я не уверен, как переключаться между этими конвертерами при изменении состояния флажка.
Мой план состоял в том, чтобы в моем ViewModel было поле "IValueConverter lengthConverter", которое я мог бы установить для одного преобразователя или другого, тогда в моем XAML сделайте ...="{Binding Converter={Binding Path=lengthConverter}}"
- к сожалению, это не работает, поскольку Converter не является свойством зависимости.
Как изменить преобразователь, используемый привязкой данных во время выполнения?