47 lines
1.4 KiB
C#
47 lines
1.4 KiB
C#
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Windows.Input;
|
|
using ClassicAssist.Annotations;
|
|
|
|
namespace ClassicAssist.Data.Autoloot
|
|
{
|
|
public class AutolootConstraintEntry : INotifyPropertyChanged
|
|
{
|
|
private AutolootOperator _operator = AutolootOperator.Equal;
|
|
private PropertyEntry _property;
|
|
private int _value;
|
|
|
|
public AutolootOperator Operator
|
|
{
|
|
get => _operator;
|
|
set => SetProperty( ref _operator, value );
|
|
}
|
|
|
|
public PropertyEntry Property
|
|
{
|
|
get => _property;
|
|
set => SetProperty( ref _property, value );
|
|
}
|
|
|
|
public int Value
|
|
{
|
|
get => _value;
|
|
set => SetProperty( ref _value, value );
|
|
}
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
|
|
[NotifyPropertyChangedInvocator]
|
|
protected virtual void OnPropertyChanged( [CallerMemberName] string propertyName = null )
|
|
{
|
|
PropertyChanged?.Invoke( this, new PropertyChangedEventArgs( propertyName ) );
|
|
}
|
|
|
|
// ReSharper disable once RedundantAssignment
|
|
public virtual void SetProperty<T>( ref T obj, T value, [CallerMemberName] string propertyName = "" )
|
|
{
|
|
obj = value;
|
|
OnPropertyChanged( propertyName );
|
|
}
|
|
}
|
|
} |