StructureHelper: View fixes

This commit is contained in:
NickAppLab
2022-06-15 12:34:27 +05:00
parent a7cf3a1daf
commit 82bbd22e67
4 changed files with 78 additions and 11 deletions

View File

@@ -7,12 +7,6 @@ namespace StructureHelper.Infrastructure
public class ViewModelBase : INotifyPropertyChanged public class ViewModelBase : INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler PropertyChanged; public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged<T>(T value, T prop, [CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
[NotifyPropertyChangedInvocator] [NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged<T>(T value, ref T prop, [CallerMemberName] string propertyName = null) protected virtual void OnPropertyChanged<T>(T value, ref T prop, [CallerMemberName] string propertyName = null)
{ {

View File

@@ -17,7 +17,7 @@ namespace StructureHelper
get => materialCollection; get => materialCollection;
set set
{ {
OnPropertyChanged(value, materialCollection); OnPropertyChanged(value, ref materialCollection);
OnPropertyChanged(nameof(IsNotConcrete)); OnPropertyChanged(nameof(IsNotConcrete));
OnPropertyChanged(nameof(RowHeight)); OnPropertyChanged(nameof(RowHeight));
} }

View File

@@ -1,11 +1,69 @@
using System; using System;
using System.ComponentModel;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using StructureHelper.Annotations;
using StructureHelper.Infrastructure; using StructureHelper.Infrastructure;
namespace StructureHelper namespace StructureHelper
{ {
//public class ColorPickerViewModel : ViewModelBase
//{
// private int red, green, blue;
// public int Red
// {
// get => red;
// set => OnColorItemChanged(value, ref red);
// }
// public int Green
// {
// get => green;
// set => OnColorItemChanged(value, ref green);
// }
// public int Blue
// {
// get => blue;
// set => OnColorItemChanged(value, ref blue);
// }
// private SolidColorBrush selectedColor;
// public SolidColorBrush SelectedColor
// {
// get => selectedColor;
// set => OnPropertyChanged(value, selectedColor);
// }
// public ICommand SetColor { get; }
// public ColorPickerViewModel(PrimitiveDefinitionBase primitive)
// {
// if (primitive != null)
// {
// var solidBrush = primitive.Brush;
// Red = solidBrush.Color.R;
// Green = solidBrush.Color.G;
// Blue = solidBrush.Color.B;
// SetColor = new RelayCommand(o => primitive.Brush = SelectedColor);
// }
// }
// private void OnColorItemChanged(int value, ref int colorItem, [CallerMemberName] string propertyName = null)
// {
// if (value >= 0 && value <= 255 && Math.Abs(colorItem - value) > 0.001)
// {
// colorItem = value;
// OnPropertyChanged(propertyName);
// UpdateSelectedColor();
// }
// }
// private void UpdateSelectedColor()
// {
// var color = Color.FromRgb((byte)Red, (byte)Green, (byte)Blue);
// SelectedColor = new SolidColorBrush(color);
// OnPropertyChanged(nameof(SelectedColor));
// }
//}
public class ColorPickerViewModel : ViewModelBase public class ColorPickerViewModel : ViewModelBase
{ {
private int red, green, blue; private int red, green, blue;
@@ -30,7 +88,8 @@ namespace StructureHelper
public SolidColorBrush SelectedColor public SolidColorBrush SelectedColor
{ {
get => selectedColor; get => selectedColor;
set => OnPropertyChanged(value, selectedColor); //selectedColor = value;
set => OnPropertyChanged(value, ref selectedColor);
} }
public ICommand SetColor { get; } public ICommand SetColor { get; }
public ColorPickerViewModel(PrimitiveDefinitionBase primitive) public ColorPickerViewModel(PrimitiveDefinitionBase primitive)

View File

@@ -294,7 +294,7 @@
</Canvas.Background> </Canvas.Background>
<Line X1="0" X2="{Binding XX2}" Y1="{Binding XY1}" Y2="{Binding XY1}" Stroke="Red" StrokeThickness="1"/> <Line X1="0" X2="{Binding XX2}" Y1="{Binding XY1}" Y2="{Binding XY1}" Stroke="Red" StrokeThickness="1"/>
<Line X1="{Binding YX1}" X2="{Binding YX1}" Y1="0" Y2="{Binding YY2}" Stroke="ForestGreen" StrokeThickness="1"/> <Line X1="{Binding YX1}" X2="{Binding YX1}" Y1="0" Y2="{Binding YY2}" Stroke="ForestGreen" StrokeThickness="1"/>
<ItemsControl ItemsSource="{Binding Primitives}" ItemTemplate="{Binding}"> <ItemsControl ItemsSource="{Binding Rectangles}" ItemTemplate="{StaticResource rectangleTemplate}">
<ItemsControl.ItemsPanel> <ItemsControl.ItemsPanel>
<ItemsPanelTemplate> <ItemsPanelTemplate>
<Canvas/> <Canvas/>
@@ -303,8 +303,22 @@
<ItemsControl.ItemContainerStyle> <ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter"> <Style TargetType="ContentPresenter">
<Setter Property="Canvas.ZIndex" Value="{Binding ZIndex}"/> <Setter Property="Canvas.ZIndex" Value="{Binding ZIndex}"/>
<Setter Property="Canvas.Left" Value="{Binding X}"/> <Setter Property="Canvas.Left" Value="{Binding RectX}"/>
<Setter Property="Canvas.Top" Value="{Binding Y}"/> <Setter Property="Canvas.Top" Value="{Binding RectY}"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
<ItemsControl ItemsSource="{Binding Ellipses}" ItemTemplate="{StaticResource ellipseTemplate}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Canvas/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style TargetType="ContentPresenter">
<Setter Property="Canvas.ZIndex" Value="{Binding ZIndex}"/>
<Setter Property="Canvas.Left" Value="{Binding EllipseX}"/>
<Setter Property="Canvas.Top" Value="{Binding EllipseY}"/>
</Style> </Style>
</ItemsControl.ItemContainerStyle> </ItemsControl.ItemContainerStyle>
</ItemsControl> </ItemsControl>