/
dOJer113
/
Insect
Обзор
Документация
Войти
/
dOJer113
/
Insect
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
lab_5
UI/Views/MainWindow.axaml
153 строки
7 KB
aleks
lab 5
14 дек 2025, 19:32
14 дек 2025, 19:32
395af5a
Код
Авторство
О чём код?
<Window x:Class="UI.Views.MainWindow" xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:UI.ViewModels" Title="Насекомые" Width="1200" Height="640" MinWidth="1200" MinHeight="620" x:DataType="vm:MainWindowViewModel" Background="#FF121212"> <DockPanel Margin="12" LastChildFill="True"> <StackPanel Margin="0,0,0,10" DockPanel.Dock="Top" Spacing="8" Background="#FF1E1E1E"> <DockPanel> <StackPanel Orientation="Horizontal" Spacing="8"> <ComboBox PlaceholderText="Тип насекомого" SelectedIndex="{Binding SelectedFactoryIndex}" Background="#FF2D2D2D" Foreground="White"> <ComboBoxItem Content="Абстрактная фабрика (Стеклокрылка и божья коровка)" /> <ComboBoxItem Content="Абстрактная фабрика (Монарх и некрофаг)" /> <ComboBoxItem Content="Фабрика прототипов (Стеклокрылка и божья коровка)" /> <ComboBoxItem Content="Фабрика прототипов (Монарх и некрофаг)" /> </ComboBox> <Button Command="{Binding AddBeetleCommand}" Content="Добавить жука" Background="#FF42A5F5" Foreground="White" Width="130" Height="32"/> <Button Command="{Binding AddButterflyCommand}" Content="Добавить бабочку" Background="#FF42A5F5" Foreground="White" Width="145" Height="32"/> <Button Command="{Binding EditCommand}" Content="Изменить" Background="#FF66BB6A" Foreground="White" Width="90" Height="32" IsEnabled="{Binding CanEditOrDelete}" /> <Button Command="{Binding DeleteCommand}" Content="Удалить" Background="#FFEF5350" Foreground="White" Width="90" Height="32" IsEnabled="{Binding CanEditOrDelete}" /> </StackPanel> <Button HorizontalAlignment="Right" Command="{Binding GenerateTestInsectsCommand}" IsEnabled="{Binding CanGenerate}" Content="Генерировать 1 000 000" Background="#FF78909C" Foreground="White" Width="220" Height="32" DockPanel.Dock="Right" /> </DockPanel> <Expander IsExpanded="True" ExpandDirection="Right" Height="80" Header="Фильтр"> <DockPanel> <StackPanel Orientation="Horizontal" Spacing="8"> <TextBox Width="190" Watermark="Тип ротового аппарата" Text="{Binding MouthpieceFilter, UpdateSourceTrigger=PropertyChanged}" /> <NumericUpDown Width="185" Minimum="{Binding BodySizeMinBound}" Maximum="{Binding BodySizeMaxBound}" Increment="0.5" Watermark="Размер от" Value="{Binding MinBodySizeFilter, Mode=TwoWay}" /> <NumericUpDown Width="185" Minimum="{Binding BodySizeMinBound}" Maximum="{Binding BodySizeMaxBound}" Increment="0.5" Watermark="Размер до" Value="{Binding MaxBodySizeFilter, Mode=TwoWay}" /> <Button Content="Применить" Command="{Binding ApplyFilterCommand}" Background="#FF5C6BC0" Foreground="White" Width="110" Height="32" /> </StackPanel> <TextBlock DockPanel.Dock="Right" Margin="12,0,0,0" VerticalAlignment="Center" Text="{Binding FilterSummary}" Foreground="White" Opacity="0.85" /> </DockPanel> </Expander> </StackPanel> <DataGrid AutoGenerateColumns="False" CanUserResizeColumns="True" CanUserSortColumns="True" ContextMenu="{DynamicResource ContextMenu}" GridLinesVisibility="Horizontal" HeadersVisibility="Column" IsReadOnly="True" ItemsSource="{Binding Insects}" RowHeight="36" SelectedItem="{Binding SelectedInsect, Mode=TwoWay}" Background="#FF1E1E1E" Foreground="White" BorderBrush="#FF424242" BorderThickness="1"> <DataGrid.Columns> <DataGridTextColumn Width="Auto" MinWidth="120" Binding="{Binding BodySize}" Header="Размер тела (мм)" Foreground="White"/> <DataGridCheckBoxColumn Width="Auto" MinWidth="140" Binding="{Binding HasWings}" Header="Крылья"/> <DataGridTextColumn Width="*" MinWidth="120" Binding="{Binding MouthpieceType}" Header="Тип жвал" Foreground="White"/> </DataGrid.Columns> <DataGrid.ContextMenu> <ContextMenu Background="#FF2D2D2D" Foreground="White"> <MenuItem Header="Добавить"> <MenuItem Command="{Binding AddBeetleCommand}" Header="Жука" /> <MenuItem Command="{Binding AddButterflyCommand}" Header="Бабочку" /> </MenuItem> <MenuItem Command="{Binding EditCommand}" Header="Изменить" IsEnabled="{Binding CanEditOrDelete}"/> <MenuItem Command="{Binding DeleteCommand}" Header="Удалить" IsEnabled="{Binding CanEditOrDelete}"/> <MenuItem Command="{Binding GenerateTestInsectsCommand}" IsEnabled="{Binding CanGenerate}" Header="Сгенерировать 1 000 000 записей"/> </ContextMenu> </DataGrid.ContextMenu> </DataGrid> </DockPanel> </Window>