WPF переплет: создание приложения преобразователя температуры - PullRequest
0 голосов
/ 06 января 2011

Я делаю маленькое приложение, которое в основном имеет 2 текстовых поля. Вы введете Фаренгейт в TextBoxA, а Цельсий - в TextBoxB.

Поскольку текст изменяется в TextBoxA, я хочу, чтобы эквивалентное значение в градусах Цельсия отображалось в TextBoxB и наоборот.

Я могу найти решение, довольно простое для этого, но я пытаюсь быть немного умным.

Есть ли способ сделать все это в Xaml, кроме класса Convert, который выполняет математику? Поэтому я хочу, чтобы событие TextChanged одного textBox передавало его значение в класс Converter, который оценивается и отправляется в другой TextBox, и наоборот.

Кто-нибудь знает, как мне этого добиться ... и возможно ли это вообще?

Ответы [ 2 ]

3 голосов
/ 06 января 2011
<TextBox x:Name="Celsius" />
<Textbox x:Name="Fahrenheit" Text="{Binding Text, ElementName=Celsius, Mode=TwoWay, Converter={StaticResource CelsiusToFahrenheitConverter}}" />

Когда вы обновите C, F получит значение и преобразует его. Когда вы обновите F, он преобразуется обратно в C и поместит значение в текстовое поле Celcius.

1 голос
/ 06 января 2011
<TextBox x:Name="CelcuiusTextBox" Text="{Binding Text, ElementName=FahrenheitTextBox, Converter={StaticResource FahrenheitToCelciusConverter}}"/>
<TextBox x:Name="FahrenheitTextBox" Text="{Binding Text, ElementName=CelciusTextBox, Converter={StaticResource CelciusToFahrenheitConverter}}"/>

Предполагается существование двух разных преобразователей. Конечно, вы можете написать один конвертер, который можно перевести в другой режим для конвертации из или в градусы Цельсия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...