Compare commits

...

2 Commits

5 changed files with 96 additions and 27 deletions

View File

@@ -1,12 +1,30 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel;
using System.Linq; using System.Linq;
using System.Runtime.CompilerServices;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace MVPLearning.BaseLibrary namespace MVPLearning.BaseLibrary
{ {
public class BaseForm : Form public class BaseForm : Form, INotifyPropertyChanged
{ {
public event PropertyChangedEventHandler? PropertyChanged;
protected virtual void RaisePropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
protected virtual bool SetProperty<T>(ref T storage, T value, [CallerMemberName] string propertyName = "")
{
if (EqualityComparer<T>.Default.Equals(storage, value))
{
return false;
}
storage = value;
RaisePropertyChanged(propertyName);
return true;
}
} }
} }

View File

@@ -56,20 +56,20 @@ namespace MVPLearning.RecordKeeping.SermonFiler
public override int GetHashCode() public override int GetHashCode()
{ {
//HashCode hash = new(); HashCode hash = new();
//hash.Add(Seid); hash.Add(Seid);
//hash.Add(Title); hash.Add(Title);
//hash.Add(Scripture); hash.Add(Scripture);
//hash.Add(When); hash.Add(When);
//hash.Add(Subject); hash.Add(Subject);
//hash.Add(Minister); hash.Add(Minister);
//hash.Add(Where); hash.Add(Where);
//hash.Add(Ref_No); hash.Add(Ref_No);
//hash.Add(Notes); hash.Add(Notes);
//hash.Add(Filename); hash.Add(Filename);
//hash.Add(Web); hash.Add(Web);
//return hash.ToHashCode(); return hash.ToHashCode();
return base.GetHashCode(); //return base.GetHashCode();
} }
} }
} }

View File

@@ -19,8 +19,6 @@ namespace MVPLearning.RecordKeeping.SermonFiler
_model = new() { Title = "Constructor value"}; _model = new() { Title = "Constructor value"};
_model.PropertyChanged += ModelChanged; _model.PropertyChanged += ModelChanged;
BindControls(); BindControls();
TextBoxTitle.DataBindings.Clear();
TextBoxTitle.DataBindings.Add("Text", _model, "Title");
//TextBoxFileName.TextChanged += TextBoxFileName_TextChanged ; //TextBoxFileName.TextChanged += TextBoxFileName_TextChanged ;
//ButtonLaunch.Enabled = !string.IsNullOrEmpty(_model.Filename); //ButtonLaunch.Enabled = !string.IsNullOrEmpty(_model.Filename);
} }
@@ -40,23 +38,54 @@ namespace MVPLearning.RecordKeeping.SermonFiler
_model.Filename = model.Filename; _model.Filename = model.Filename;
_model.Web = model.Web; _model.Web = model.Web;
//EnableButtonLaunch(); //EnableButtonLaunch();
Title = _model.Title;
Scripture = _model.Scripture;
When = _model.When;
Subject = _model.Subject;
Minister = _model.Minister;
Where = _model.Where;
Ref_No = _model.Ref_No;
Notes = _model.Notes;
Filename = _model.Filename;
Web = _model.Web;
} }
public void BindControls() public void BindControls()
{ {
TextBoxTitle.Bind(_model, nameof(_model.Title)); TextBoxTitle.Bind(this, nameof(Title));
TextBoxTitle.GotFocus += TextBoxTitle_GotFocus; TextBoxTitle.GotFocus += TextBoxTitle_GotFocus;
TextBoxTitle.LostFocus += TextBoxTitle_LostFocus; TextBoxTitle.LostFocus += TextBoxTitle_LostFocus;
TextBoxScriptureReference.Bind(_model, nameof(_model.Scripture)); TextBoxScriptureReference.Bind(this, nameof(Scripture));
DatePickerWhenDelivered.Bind(_model, nameof(_model.When)); DatePickerWhenDelivered.Bind(this, nameof(When));
TextBoxSubject.Bind(_model, nameof(_model.Subject)); TextBoxSubject.Bind(this, nameof(Subject));
TextBoxWhoDelivered.Bind(_model, nameof(_model.Minister)); TextBoxWhoDelivered.Bind(this, nameof(Minister));
TextBoxWhereDelivered.Bind(_model, nameof(_model.Where)); TextBoxWhereDelivered.Bind(this, nameof(Where));
TextBoxReferenceNumber.Bind(_model, nameof(_model.Ref_No)); TextBoxReferenceNumber.Bind(this, nameof(Ref_No));
TextBoxNotes.Bind(_model, nameof(_model.Notes)); TextBoxNotes.Bind(this, nameof(Notes));
TextBoxFileName.Bind(_model, nameof(_model.Filename)); TextBoxFileName.Bind(this, nameof(Filename));
TextBoxWebUrl.Bind(_model, nameof(_model.Web)); TextBoxWebUrl.Bind(this, nameof(Web));
} }
private string _title = string.Empty;
public string Title { get => _title; set { if (SetProperty(ref _title, value)) { _model.Title = value; } } }
private string _scripture = string.Empty;
public string Scripture { get => _scripture; set { if (SetProperty(ref _scripture, value)) { _model.Scripture= value; } } }
private DateTime? _when = null;
public DateTime? When { get => _when; set { if (SetProperty(ref _when, value)) { _model.When = value; } } }
private string _subject = string.Empty;
public string Subject { get => _subject; set { if (SetProperty(ref _subject, value)) { _model.Subject = value; } } }
private string _minister = string.Empty;
public string Minister { get => _minister; set { if (SetProperty(ref _minister, value)) { _model.Minister = value; } } }
private string _where = string.Empty;
public string Where { get => _where; set { if (SetProperty(ref _where, value)) { _model.Where = value; } } }
private string _ref_no = string.Empty;
public string Ref_No { get => _ref_no; set { if (SetProperty(ref _ref_no, value)) { _model.Ref_No = value; } } }
private string _notes = string.Empty;
public string Notes { get => _notes; set { if (SetProperty(ref _notes, value)) { _model.Notes = value; } } }
private string _filename = string.Empty;
public string Filename { get => _filename; set { if (SetProperty(ref _filename, value)) { _model.Filename = value; } } }
private string _web = string.Empty;
public string Web { get => _web; set { if (SetProperty(ref _web, value)) { _model.Web = value; } } }
private void TextBoxTitle_LostFocus(object? sender, EventArgs e) private void TextBoxTitle_LostFocus(object? sender, EventArgs e)
{ {
WarnTitleIsEmpty(); WarnTitleIsEmpty();

View File

@@ -0,0 +1,15 @@
using MVPLearning.Structure;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MVPLearning.TestingArea.ModelProperties
{
internal class ModelPropertiesModel : ObservableObject
{
public string FirstName { get => _firstName; set => SetProperty(ref _firstName, value); }
private string _firstName = string.Empty;
}
}

View File

@@ -0,0 +1,7 @@
namespace MVPLearning.TestingArea.ViewProperties
{
internal class ViewPropertiesModel
{
public string FirstName { get; set; } = string.Empty;
}
}