C#转换器:是否使用IValue转换器
我有一个温度文本框。它旁边有一个组合框,允许用户选择他想要的系统,即摄氏度或华氏度 根据组合框中的选择,文本框中的值应自动更改 我应该在这里使用自定义转换器,即从IValueConverter派生的转换器吗?如果是这样,我如何触发它 另一个选项是我可以锁定组合框选择更改事件。这样我就可以得到这个值,并根据下拉列表中选择的内容,用一种方法将其转换。这对我来说似乎更简单,代码更少 每种方法的优缺点是什么C#转换器:是否使用IValue转换器,c#,wpf,combobox,ivalueconverter,C#,Wpf,Combobox,Ivalueconverter,我有一个温度文本框。它旁边有一个组合框,允许用户选择他想要的系统,即摄氏度或华氏度 根据组合框中的选择,文本框中的值应自动更改 我应该在这里使用自定义转换器,即从IValueConverter派生的转换器吗?如果是这样,我如何触发它 另一个选项是我可以锁定组合框选择更改事件。这样我就可以得到这个值,并根据下拉列表中选择的内容,用一种方法将其转换。这对我来说似乎更简单,代码更少 每种方法的优缺点是什么 <TextBox Text="{Binding Temperature, Validat
<TextBox Text="{Binding Temperature, ValidatesOnDataErrors=True, NotifyOnValidationError=True}" />
<ComboBox SelectedItem="{Binding TemperatureUnit}" ItemsSource="{StaticResource TempUnits}" />
您只需更改视图模型即可,这样当温度单位
更改时,温度
应重新计算并通知为已更改(以更新文本)。一旦你有了一个合适的视图模型,你就不需要任何转换器(逻辑在代码隐藏中,输入也可以在代码隐藏中访问)。哇..这怎么会完全跳过我..你应该回答这个问题。所以我可以向上投票,尽管现在看起来像是一个非常愚蠢的问题。顺便说一句,当应该有一些值要转换,而该值不存在于视图模型中时,使用转换器。在这种情况下,视图模型中存在Temperature
,因此不需要转换器(事实上,您可以在代码隐藏中的某个助手方法中进行转换/计算)。