Files
GazpromApp/Views/EditEquipmentView.axaml
T

136 lines
6.6 KiB
XML

<UserControl xmlns="https://github.com/avaloniaui"
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:vm="using:GazpromApp.ViewModels"
xmlns:views="using:GazpromApp.Views"
xmlns:icons="using:Material.Icons.Avalonia"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="GazpromApp.Views.EditEquipmentView"
x:DataType="vm:EditEquipmentViewModel">
<Design.DataContext>
<vm:EditEquipmentViewModel/>
</Design.DataContext>
<Grid RowDefinitions="70,150,*,Auto" ColumnDefinitions="*,100,220" x:Name="Root">
<Grid.Styles>
<Style Selector="Button.empty">
<Setter Property="IsVisible" Value="True" />
</Style>
<Style Selector="Button.not-empty">
<Setter Property="IsVisible" Value="False" />
</Style>
</Grid.Styles>
<TextBlock Grid.Column="0" Grid.Row="0" FontSize="28" Margin="20,4"
Text="{Binding Name, FallbackValue='Название'}"
IsVisible="{Binding !IsNameEditing, FallbackValue=true}"/>
<TextBox Grid.Column="0" Grid.Row="0" FontSize="28" Margin="20, 4"
Text="{Binding Name, FallbackValue='Название'}"
IsVisible="{Binding IsNameEditing, FallbackValue=false}"/>
<Button Grid.Column="1" Grid.Row="0" HorizontalAlignment="Center" Margin="10" Width="40" Height="40"
Command="{Binding EditNameCommand}">
<icons:MaterialIcon Kind="Edit" Width="24" Height="24"/>
</Button>
<TextBlock Grid.Column="0" Grid.Row="1" Margin="20,4"
Text="{Binding Description, FallbackValue='Описание'}"
IsVisible="{Binding !IsDescriptionEditing, FallbackValue=true}"/>
<TextBox Grid.Column="0" Grid.Row="1" Margin="20,4" AcceptsReturn="True" TextWrapping="Wrap"
Text="{Binding Description, FallbackValue='Название'}"
IsVisible="{Binding IsDescriptionEditing, FallbackValue=false}"/>
<Button Grid.Column="1" Grid.Row="1" HorizontalAlignment="Center" Margin="10" Width="40" Height="40"
Command="{Binding EditDescriptionCommand}">
<icons:MaterialIcon Kind="Edit" Width="24" Height="24"/>
</Button>
<Panel Grid.Row="0" Grid.RowSpan="2" Grid.Column="2" HorizontalAlignment="Center">
<ScrollViewer HorizontalAlignment="Center">
<StackPanel>
<ItemsRepeater HorizontalAlignment="Center"
ItemsSource="{Binding Images}">
<ItemsRepeater.Layout>
<UniformGridLayout Orientation="Horizontal" MaximumRowsOrColumns="1"/>
</ItemsRepeater.Layout>
<ItemsRepeater.ItemTemplate>
<DataTemplate DataType="vm:ImageViewModel">
<Border Margin="4" CornerRadius="4" Background="LightGray">
<Grid Margin="2" Width="200" Height="200" Background="LightGray"
ColumnDefinitions="*,32,4,32,8" RowDefinitions="8,32,*">
<Image Stretch="Uniform" Width="200" Height="200" Grid.RowSpan="3" Grid.ColumnSpan="5"
Source="{Binding FileName}" />
<Button Grid.Row="1" Grid.Column="1" Width="32" Height="32"
Command="{Binding ViewImageCommand}">
<icons:MaterialIcon Kind="PrintPreview" Width="24" Height="24"/>
</Button>
<Button Grid.Row="1" Grid.Column="3" Width="32" Height="32"
Command="{Binding DeleteImageCommand}">
<icons:MaterialIcon Kind="Delete" Width="24" Height="24"/>
</Button>
</Grid>
</Border>
</DataTemplate>
</ItemsRepeater.ItemTemplate>
</ItemsRepeater>
<Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="40" Height="40"
Classes.empty="{Binding !!Images.Count}"
Classes.not-empty="{Binding !Images.Count}"
Command="{Binding AddImageCommand}">
<icons:MaterialIcon Kind="CameraPlus" Width="24" Height="24"/>
</Button>
</StackPanel>
</ScrollViewer>
<Button HorizontalAlignment="Center" VerticalAlignment="Center" Width="40" Height="40"
Classes.empty="{Binding !Images.Count}"
Classes.not-empty="{Binding !!Images.Count}"
Command="{Binding AddImageCommand}">
<icons:MaterialIcon Kind="CameraPlus" Width="24" Height="24"/>
</Button>
</Panel>
<TabControl Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3">
<TabItem Header="Свойства">
<ScrollViewer>
<StackPanel>
<TreeView ItemsSource="{Binding Properties}">
<TreeView.DataTemplates>
<TreeDataTemplate DataType="{x:Type vm:PropertyViewModel}"
ItemsSource="{Binding Properties}">
<views:PropertyView/>
</TreeDataTemplate>
</TreeView.DataTemplates>
</TreeView>
<Button HorizontalAlignment="Center" Margin="4" Width="32" Height="32"
Command="{Binding AddPropertyCommand}">
<icons:MaterialIcon Kind="Add" Width="24" Height="24"/>
</Button>
</StackPanel>
</ScrollViewer>
</TabItem>
<TabItem Header="Инспекции">
<ScrollViewer>
<StackPanel>
<TreeView ItemsSource="{Binding Inspections}">
<TreeView.DataTemplates>
<TreeDataTemplate DataType="{x:Type vm:InspectionViewModel}"
ItemsSource="{Binding Inspection}">
<views:InspectionView/>
</TreeDataTemplate>
</TreeView.DataTemplates>
</TreeView>
<Button HorizontalAlignment="Center" Margin="4" Width="32" Height="32"
Command="{Binding AddInspectionCommand}">
<icons:MaterialIcon Kind="Add" Width="24" Height="24"/>
</Button>
</StackPanel>
</ScrollViewer>
</TabItem>
</TabControl>
<Button Grid.Column="0" Grid.Row="3" Margin="8" Content="Отменить" HorizontalAlignment="Left"
Command="{Binding CancelEditCommand}"/>
<Button Grid.Column="2" Grid.Row="3" Margin="8" Content="Сохранить" HorizontalAlignment="Right"
Command="{Binding CompleteEditCommand}"/>
</Grid>
</UserControl>