Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#转换器:是否使用IValue转换器_C#_Wpf_Combobox_Ivalueconverter - Fatal编程技术网

C#转换器:是否使用IValue转换器

C#转换器:是否使用IValue转换器,c#,wpf,combobox,ivalueconverter,C#,Wpf,Combobox,Ivalueconverter,我有一个温度文本框。它旁边有一个组合框,允许用户选择他想要的系统,即摄氏度或华氏度 根据组合框中的选择,文本框中的值应自动更改 我应该在这里使用自定义转换器,即从IValueConverter派生的转换器吗?如果是这样,我如何触发它 另一个选项是我可以锁定组合框选择更改事件。这样我就可以得到这个值,并根据下拉列表中选择的内容,用一种方法将其转换。这对我来说似乎更简单,代码更少 每种方法的优缺点是什么 <TextBox Text="{Binding Temperature, Validat

我有一个温度文本框。它旁边有一个组合框,允许用户选择他想要的系统,即摄氏度或华氏度

根据组合框中的选择,文本框中的值应自动更改

我应该在这里使用自定义转换器,即从IValueConverter派生的转换器吗?如果是这样,我如何触发它

另一个选项是我可以锁定组合框选择更改事件。这样我就可以得到这个值,并根据下拉列表中选择的内容,用一种方法将其转换。这对我来说似乎更简单,代码更少

每种方法的优缺点是什么

<TextBox  Text="{Binding Temperature, ValidatesOnDataErrors=True, NotifyOnValidationError=True}"  />
<ComboBox  SelectedItem="{Binding TemperatureUnit}" ItemsSource="{StaticResource TempUnits}"   />


您只需更改视图模型即可,这样当
温度单位
更改时,
温度
应重新计算并通知为已更改(以更新文本)。一旦你有了一个合适的视图模型,你就不需要任何转换器(逻辑在代码隐藏中,输入也可以在代码隐藏中访问)。哇..这怎么会完全跳过我..你应该回答这个问题。所以我可以向上投票,尽管现在看起来像是一个非常愚蠢的问题。顺便说一句,当应该有一些值要转换,而该值不存在于视图模型中时,使用转换器。在这种情况下,视图模型中存在
Temperature
,因此不需要转换器(事实上,您可以在代码隐藏中的某个助手方法中进行转换/计算)。