Init commit
This commit is contained in:
47
Windows/AddMaterialWindow/AddMaterialView.xaml
Normal file
47
Windows/AddMaterialWindow/AddMaterialView.xaml
Normal file
@@ -0,0 +1,47 @@
|
||||
<Window x:Class="StructureHelper.AddMaterialView"
|
||||
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:StructureHelper"
|
||||
mc:Ignorable="d"
|
||||
d:DataContext="{d:DesignInstance local:AddMaterialViewModel}"
|
||||
Title="Добавление материала" Height="350" Width="400">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="40"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="40"/>
|
||||
<RowDefinition Height="40"/>
|
||||
<RowDefinition Height="{Binding RowHeight}"/>
|
||||
<RowDefinition Height="40"/>
|
||||
<RowDefinition Height="{Binding RowHeight}"/>
|
||||
<RowDefinition Height="40"/>
|
||||
<RowDefinition Height="40"/>
|
||||
<RowDefinition Height="40"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="2.2*"/>
|
||||
<ColumnDefinition Width="*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<TextBlock Grid.Row="0" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Группа материалов"/>
|
||||
<ComboBox Grid.Row="0" Grid.Column="1" Margin="10" ItemsSource="{Binding Materials}" DisplayMemberPath="Name" SelectedItem="{Binding MaterialCollection}"/>
|
||||
<TextBlock Grid.Row="1" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Класс"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1" Margin="10" Text="{Binding MaterialClass}"/>
|
||||
<TextBlock Grid.Row="2" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Модуль упругости" IsEnabled="{Binding IsNotConcrete}"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="1" Margin="10" IsEnabled="{Binding IsNotConcrete}" Text="{Binding YoungModulus}"/>
|
||||
<TextBlock Grid.Row="3" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Нормативная прочность на сжатие"/>
|
||||
<TextBox Grid.Row="3" Grid.Column="1" Margin="10" Text="{Binding CompressiveStrengthCoef}"/>
|
||||
<TextBlock Grid.Row="4" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Нормативная прочность на растяжение" IsEnabled="{Binding IsNotConcrete}"/>
|
||||
<TextBox Grid.Row="4" Grid.Column="1" Margin="10" Text="{Binding TensileStrengthCoef}" IsEnabled="{Binding IsNotConcrete}"/>
|
||||
<TextBlock Grid.Row="5" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Коэффициент надежности при сжатии"/>
|
||||
<TextBox Grid.Row="5" Grid.Column="1" Margin="10" Text="{Binding MaterialCoefInCompress}"/>
|
||||
<TextBlock Grid.Row="6" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10" Text="Коэффициент надежности при расширении"/>
|
||||
<TextBox Grid.Row="6" Grid.Column="1" Margin="10" Text="{Binding MaterialCoefInTension}"/>
|
||||
</Grid>
|
||||
<Button Grid.Row="1" Grid.Column="0" Margin="10" HorizontalAlignment="Left" Content="Добавить материал" Command="{Binding AddMaterial}"/>
|
||||
</Grid>
|
||||
</Window>
|
||||
17
Windows/AddMaterialWindow/AddMaterialView.xaml.cs
Normal file
17
Windows/AddMaterialWindow/AddMaterialView.xaml.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System.Windows;
|
||||
|
||||
namespace StructureHelper
|
||||
{
|
||||
/// <summary>
|
||||
/// Логика взаимодействия для AddMaterialView.xaml
|
||||
/// </summary>
|
||||
public partial class AddMaterialView : Window
|
||||
{
|
||||
public AddMaterialView(MaterialCatalogModel model, MaterialCatalogViewModel materialCatalogViewModel)
|
||||
{
|
||||
var viewModel = new AddMaterialViewModel(model, this, materialCatalogViewModel);
|
||||
DataContext = viewModel;
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
82
Windows/AddMaterialWindow/AddMaterialViewModel.cs
Normal file
82
Windows/AddMaterialWindow/AddMaterialViewModel.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Windows.Input;
|
||||
using StructureHelper.Infrastructure;
|
||||
|
||||
namespace StructureHelper
|
||||
{
|
||||
public class AddMaterialViewModel : ViewModelBase
|
||||
{
|
||||
private MaterialCatalogModel model;
|
||||
private AddMaterialView view;
|
||||
private MaterialCatalogViewModel materialCatalogViewModel;
|
||||
public ObservableCollection<NamedList<MaterialDefinitionBase>> Materials { get; set; }
|
||||
private NamedList<MaterialDefinitionBase> materialCollection;
|
||||
public NamedList<MaterialDefinitionBase> MaterialCollection
|
||||
{
|
||||
get => materialCollection;
|
||||
set
|
||||
{
|
||||
OnPropertyChanged(value, materialCollection);
|
||||
OnPropertyChanged(nameof(IsNotConcrete));
|
||||
OnPropertyChanged(nameof(RowHeight));
|
||||
}
|
||||
}
|
||||
public bool IsNotConcrete => MaterialCollection.Name != "Бетон";
|
||||
|
||||
private string materialClass;
|
||||
private double youngModulus, compressiveStrengthCoef, tensileStrengthCoef, materialCoefInCompress, materialCoefInTension;
|
||||
|
||||
public string MaterialClass
|
||||
{
|
||||
get => materialClass;
|
||||
set => OnPropertyChanged(value, ref materialClass);
|
||||
}
|
||||
|
||||
public double YoungModulus
|
||||
{
|
||||
get => youngModulus;
|
||||
set => OnPropertyChanged(value, ref youngModulus);
|
||||
}
|
||||
public double CompressiveStrengthCoef
|
||||
{
|
||||
get => compressiveStrengthCoef;
|
||||
set => OnPropertyChanged(value, ref compressiveStrengthCoef);
|
||||
}
|
||||
public double TensileStrengthCoef
|
||||
{
|
||||
get => tensileStrengthCoef;
|
||||
set => OnPropertyChanged(value, ref tensileStrengthCoef);
|
||||
}
|
||||
public double MaterialCoefInCompress
|
||||
{
|
||||
get => materialCoefInCompress;
|
||||
set => OnPropertyChanged(value, ref materialCoefInCompress);
|
||||
}
|
||||
public double MaterialCoefInTension
|
||||
{
|
||||
get => materialCoefInTension;
|
||||
set => OnPropertyChanged(value, ref materialCoefInTension);
|
||||
}
|
||||
|
||||
public int RowHeight => IsNotConcrete ? 40 : 0;
|
||||
public ICommand AddMaterial { get; }
|
||||
public AddMaterialViewModel() { }
|
||||
public AddMaterialViewModel(MaterialCatalogModel model, AddMaterialView view, MaterialCatalogViewModel materialCatalogViewModel)
|
||||
{
|
||||
this.model = model;
|
||||
this.view = view;
|
||||
this.materialCatalogViewModel = materialCatalogViewModel;
|
||||
Materials = new ObservableCollection<NamedList<MaterialDefinitionBase>>(model.Materials);
|
||||
MaterialCollection = Materials.First();
|
||||
|
||||
AddMaterial = new RelayCommand(o =>
|
||||
{
|
||||
if (MaterialCollection.Name == "Бетон")
|
||||
this.materialCatalogViewModel.ConcreteDefinitions.Add(new ConcreteDefinition(MaterialClass, 0, CompressiveStrengthCoef, TensileStrengthCoef, MaterialCoefInCompress, MaterialCoefInTension));
|
||||
if (MaterialCollection.Name == "Арматура")
|
||||
this.materialCatalogViewModel.RebarDefinitions.Add(new RebarDefinition(MaterialClass, YoungModulus, CompressiveStrengthCoef, TensileStrengthCoef, MaterialCoefInCompress, MaterialCoefInTension));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user