Ich bin mit WPF und das MVVM-Muster in meiner Benutzeroberfläche. In meinem ViewModel habe ich eine Liste mit Entfernungen in Millimetern, die ich in einer ListView anzeige, indem ich ListView.ItemsSource an die Liste binde. Ich möchte jedoch, dass die angezeigten Werte eine natürlichere Einheit verwenden - entweder Meter oder Fuß, je nach dem Status einer "metrischen" Checkbox.
Ich habe ein paar einfache Klassen geschrieben, MillimetresToMetresConverter und MillimetresToFeetConverter, die beide IValueConverter implementieren. Obwohl ich die Converter-Eigenschaft meiner Datenbindung auf das eine oder das andere festlegen kann, bin ich mir nicht sicher, wie ich zwischen diesen Konvertern wechseln kann, wenn sich der Zustand des Kontrollkästchens ändert.
Mein Plan war, ein Feld "IValueConverter lengthConverter" auf meinem ViewModel zu haben, die ich auf einen Konverter oder den anderen, dann in meinem XAML tun könnte ...="{Binding Converter={Binding Path=lengthConverter}}"
- leider funktioniert dies nicht, da Converter keine Abhängigkeitseigenschaft ist.
Wie kann der von der Datenbindung verwendete Konverter zur Laufzeit geändert werden?