You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.2 KiB
38 lines
1.2 KiB
using System.ComponentModel;
|
|
using System.Runtime.CompilerServices;
|
|
|
|
namespace YOUserbase {
|
|
public class Group : INotifyPropertyChanged {
|
|
int id;
|
|
string name;
|
|
string details;
|
|
public int Id { get => id; set => ChangeValue(ref id, value); }
|
|
public string Name { get => name; set => ChangeValue(ref name, value); }
|
|
public string Details { get => details; set => ChangeValue(ref details, value); }
|
|
|
|
private static int index = 0;
|
|
|
|
public Group() {
|
|
Id = ++index;
|
|
}
|
|
|
|
// Change value so setter looks a bit nicer :)
|
|
private void ChangeValue<T>(ref T field, T value) {
|
|
if (!value.Equals(field)) {
|
|
field = value;
|
|
NotifyPropertyChanged();
|
|
}
|
|
}
|
|
|
|
// This method is called by the Set accessor of each property.
|
|
// The CallerMemberName attribute that is applied to the optional propertyName
|
|
// parameter causes the property name of the caller to be substituted as an argument.
|
|
private void NotifyPropertyChanged ([CallerMemberName] string propertyName = "")
|
|
{
|
|
if (PropertyChanged != null) { PropertyChanged (this, new PropertyChangedEventArgs (propertyName)); }
|
|
}
|
|
|
|
public event PropertyChangedEventHandler PropertyChanged;
|
|
}
|
|
}
|