Вопрос пользователя:
Ответ нейросети:
Пример кода:
Temperature.cs (Model):
public class Temperature
{
public double Fahrenheit { get; set; }
public double Celsius { get; set; }
public void ConvertToFahrenheit()
{
Celsius = (Fahrenheit - 32) * 5 / 9;
}
public void ConvertToCelsius()
{
Fahrenheit = Celsius * 9 / 5 + 32;
}
}
TemperatureViewModel.cs (ViewModel):
public class TemperatureViewModel : INotifyPropertyChanged
{
private Temperature temperature;
public double Fahrenheit
{
get { return temperature.Fahrenheit; }
set
{
temperature.Fahrenheit = value;
temperature.ConvertToFahrenheit();
OnPropertyChanged(nameof(Fahrenheit));
OnPropertyChanged(nameof(Celsius));
}
}
public double Celsius
{
get { return temperature.Celsius; }
set
{
temperature.Celsius = value;
temperature.ConvertToCelsius();
OnPropertyChanged(nameof(Celsius));
OnPropertyChanged(nameof(Fahrenheit));
}
}
public TemperatureViewModel()
{
temperature = new Temperature();
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
MainWindow.xaml (View):
<Window x:Class="TemperatureConverter.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:TemperatureConverter"
mc:Ignorable="d"
Title="Temperature Converter" Height="200" Width="300">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Text="{Binding Fahrenheit, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100"/>
<TextBox Grid.Row="1" Text="{Binding Celsius, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100"/>
<Button Grid.Row="2" Content="Convert" Command="{Binding ConvertCommand}" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Window>
MainWindow.xaml.cs:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new TemperatureViewModel();
}
}
Это базовая реализация конвертера температуры с использованием паттерна MVVM в WPF. Можно дополнить функционал, например, добавив проверку вводимых данных или улучшив пользовательский интерфейс.
Напишите нам, если в вопросе есть ваши персональные данные ([email protected])
Обратите внимание: ответы, предоставляемые искусственным интеллектом, могут не всегда быть точными. Не рассчитывайте на них в критически важных областях, таких как медицина, юриспруденция, финансы или в вопросах, связанных с безопасностью. Для важных решений всегда обращайтесь к квалифицированным специалистам. Администрация сайта не несет ответственности за контент, сгенерированный автоматически.