diff --git a/Infrastructure/ViewModelBase.cs b/Infrastructure/ViewModelBase.cs index 337216b..2784acc 100644 --- a/Infrastructure/ViewModelBase.cs +++ b/Infrastructure/ViewModelBase.cs @@ -7,12 +7,6 @@ namespace StructureHelper.Infrastructure public class ViewModelBase : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; - [NotifyPropertyChangedInvocator] - protected virtual void OnPropertyChanged(T value, T prop, [CallerMemberName] string propertyName = null) - { - PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); - } - [NotifyPropertyChangedInvocator] protected virtual void OnPropertyChanged(T value, ref T prop, [CallerMemberName] string propertyName = null) { diff --git a/Windows/AddMaterialWindow/AddMaterialViewModel.cs b/Windows/AddMaterialWindow/AddMaterialViewModel.cs index f233678..4e5b790 100644 --- a/Windows/AddMaterialWindow/AddMaterialViewModel.cs +++ b/Windows/AddMaterialWindow/AddMaterialViewModel.cs @@ -17,7 +17,7 @@ namespace StructureHelper get => materialCollection; set { - OnPropertyChanged(value, materialCollection); + OnPropertyChanged(value, ref materialCollection); OnPropertyChanged(nameof(IsNotConcrete)); OnPropertyChanged(nameof(RowHeight)); } diff --git a/Windows/ColorPickerWindow/ColorPickerViewModel.cs b/Windows/ColorPickerWindow/ColorPickerViewModel.cs index 3d056a3..fb93e59 100644 --- a/Windows/ColorPickerWindow/ColorPickerViewModel.cs +++ b/Windows/ColorPickerWindow/ColorPickerViewModel.cs @@ -1,11 +1,69 @@ using System; +using System.ComponentModel; using System.Runtime.CompilerServices; using System.Windows.Input; using System.Windows.Media; +using StructureHelper.Annotations; using StructureHelper.Infrastructure; 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 { private int red, green, blue; @@ -30,7 +88,8 @@ namespace StructureHelper public SolidColorBrush SelectedColor { get => selectedColor; - set => OnPropertyChanged(value, selectedColor); + //selectedColor = value; + set => OnPropertyChanged(value, ref selectedColor); } public ICommand SetColor { get; } public ColorPickerViewModel(PrimitiveDefinitionBase primitive) diff --git a/Windows/MainWindow/MainView.xaml b/Windows/MainWindow/MainView.xaml index 43b03ad..9d8e51b 100644 --- a/Windows/MainWindow/MainView.xaml +++ b/Windows/MainWindow/MainView.xaml @@ -294,7 +294,7 @@ - + @@ -303,8 +303,22 @@ + + + + + + + + + +