Загрузка данных
<Window x:Class="WpfApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
Title="Задания" Height="600" Width="500">
<ScrollViewer>
<StackPanel Margin="10">
<!-- Задание 1 -->
<TextBlock Text="Задание 1: Диспетчер задач" FontWeight="Bold" Margin="0,10,0,5"/>
<TextBox x:Name="TbTask" Margin="0,0,0,5"/>
<Button Content="Добавить" Click="BtnAdd_Click" Margin="0,0,0,5"/>
<ListBox x:Name="LbTasks" Height="100" Margin="0,0,0,5"/>
<Button x:Name="BtnDelete" Content="Удалить" IsEnabled="False" Click="BtnDelete_Click"/>
<!-- Задание 2 -->
<TextBlock Text="Задание 2: Цвета" FontWeight="Bold" Margin="0,15,0,5"/>
<ListBox x:Name="LbColors" SelectionMode="Extended" Height="80">
<ListBoxItem Tag="Red">Красный</ListBoxItem>
<ListBoxItem Tag="Blue">Синий</ListBoxItem>
<ListBoxItem Tag="Green">Зеленый</ListBoxItem>
<ListBoxItem Tag="Yellow">Желтый</ListBoxItem>
<ListBoxItem Tag="Purple">Фиолетовый</ListBoxItem>
</ListBox>
<TextBlock x:Name="TbColorCount" Text="Выбрано: 0"/>
<Button Content="Покрасить фон" Click="BtnColor_Click" Margin="0,5"/>
<!-- Задание 3 -->
<TextBlock Text="Задание 3: Числа" FontWeight="Bold" Margin="0,15,0,5"/>
<ListBox x:Name="LbNumbers" Height="80"/>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Button Content="+1" Click="BtnPlus1_Click" Width="50" Margin="0,0,5,0"/>
<Button Content="-1" Click="BtnMinus1_Click" Width="50" Margin="0,0,5,0"/>
<Button Content="Сумма" Click="BtnSum_Click" Width="50"/>
</StackPanel>
<TextBlock x:Name="TbCount" Text="Всего элементов: 0"/>
<!-- Задание 4 -->
<TextBlock Text="Задание 4: Покупки" FontWeight="Bold" Margin="0,15,0,5"/>
<ListBox x:Name="LbShop" Height="80">
<ListBoxItem>Хлеб — 2 шт.</ListBoxItem>
<ListBoxItem>Молоко — 1 шт.</ListBoxItem>
</ListBox>
<StackPanel Orientation="Horizontal" Margin="0,5">
<Button Content="Добавить" Click="BtnShopAdd_Click" Margin="0,0,5,0"/>
<Button Content="+1" Click="BtnShopUp_Click" Margin="0,0,5,0"/>
<Button Content="-1" Click="BtnShopDown_Click"/>
</StackPanel>
</StackPanel>
</ScrollViewer>
</Window>
using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
public partial class MainWindow : Window
{
// Задание 3
ObservableCollection<int> numbers = new ObservableCollection<int>();
public MainWindow()
{
InitializeComponent();
LbNumbers.ItemsSource = numbers;
// Задание 1: кнопка удалить активна только при выборе
LbTasks.SelectionChanged += (s, e) => BtnDelete.IsEnabled = LbTasks.SelectedItem != null;
// Задание 2: счётчик выбранных цветов
LbColors.SelectionChanged += (s, e) => TbColorCount.Text = $"Выбрано: {LbColors.SelectedItems.Count}";
}
// ===== Задание 1 =====
private void BtnAdd_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(TbTask.Text))
{
MessageBox.Show("Введите задачу!");
return;
}
LbTasks.Items.Add(TbTask.Text);
TbTask.Clear();
}
private void BtnDelete_Click(object sender, RoutedEventArgs e)
{
LbTasks.Items.Remove(LbTasks.SelectedItem);
}
// ===== Задание 2 =====
private void BtnColor_Click(object sender, RoutedEventArgs e)
{
if (LbColors.SelectedItem is ListBoxItem item)
{
var color = (Color)ColorConverter.ConvertFromString(item.Tag.ToString());
Background = new SolidColorBrush(color);
}
else MessageBox.Show("Выберите цвет!");
}
// ===== Задание 3 =====
private void BtnPlus1_Click(object sender, RoutedEventArgs e)
{
numbers.Add(numbers.Count == 0 ? 1 : numbers.Last() + 1);
UpdateCount();
}
private void BtnMinus1_Click(object sender, RoutedEventArgs e)
{
if (numbers.Count == 0) { MessageBox.Show("Список пуст!"); return; }
numbers.RemoveAt(numbers.Count - 1);
UpdateCount();
}
private void BtnSum_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show($"Сумма: {numbers.Sum()}");
}
private void UpdateCount() => TbCount.Text = $"Всего элементов: {numbers.Count}";
// ===== Задание 4 =====
private void BtnShopAdd_Click(object sender, RoutedEventArgs e)
{
LbShop.Items.Add($"Товар {LbShop.Items.Count + 1} — 1 шт.");
}
private void ChangeShopQuantity(int delta)
{
if (LbShop.SelectedItem is ListBoxItem item)
{
string text = item.Content.ToString();
int pos1 = text.LastIndexOf(' ') - 1; // позиция перед "шт."
int pos2 = text.LastIndexOf('—') + 2; // позиция после "— "
if (int.TryParse(text.Substring(pos2, pos1 - pos2), out int qty))
{
qty += delta;
if (qty < 1) qty = 1;
item.Content = text.Substring(0, pos2) + qty + " шт.";
}
}
}
private void BtnShopUp_Click(object sender, RoutedEventArgs e) => ChangeShopQuantity(1);
private void BtnShopDown_Click(object sender, RoutedEventArgs e) => ChangeShopQuantity(-1);
}