gpt4 book ai didi

WPF 和 MVVM : Changing data binding converter at runtime

转载 作者:行者123 更新时间:2023-12-04 15:16:30 24 4
gpt4 key购买 nike

我在我的用户界面中使用 WPF 和 MVVM 模式。在我的 ViewModel 中,我有一个包含以毫米为单位的距离的列表,我通过将 ListView.ItemsSource 绑定(bind)到列表来显示在 ListView 中。但是,我希望显示的值使用更自然的单位 - 米或英尺,具体取决于“公制”复选框的状态。

我编写了几个简单的类,MillimetresToMetresConverter 和 MillimetresToFeetConverter,它们都实现了 IValueConverter。虽然我可以将我的数据绑定(bind)上的 Converter 属性设置为一个或另一个,但我不确定当复选框的状态发生变化时如何在这些转换器之间进行更改。

我的计划是在我的 ViewModel 上有一个字段“IValueConverter lengthConverter”,我可以将其设置为一个转换器或另一个,然后在我的 XAML 中执行 ...="{Binding Converter={Binding Path=lengthConverter}}" - 不幸的是,这不起作用,因为 Converter 不是依赖属性。

如何在运行时更改数据绑定(bind)使用的转换器?

最佳答案

大多数情况下,使用 MVVM 方法时,您可以在 VM 类中执行格式化任务。在您的情况下,您可以将 Format 属性添加到 VM 类,并根据 Format 属性的值返回格式正确的字符串。

this discussion了解更多信息。

关于WPF 和 MVVM : Changing data binding converter at runtime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1631015/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com