NotifyPropertyChanged series on update

This commit is contained in:
Michael Bucari-Tovo 2022-05-23 16:42:05 -06:00
parent 440550ded9
commit 718d21f6cb
5 changed files with 14 additions and 14 deletions

View File

@ -15,7 +15,7 @@ namespace LibationWinForms
T Parent { get; }
}
public class LiberateStatus : IComparable
public class LiberateButtonStatus : IComparable
{
public LiberatedStatus BookStatus;
public LiberatedStatus? PdfStatus;
@ -24,7 +24,7 @@ namespace LibationWinForms
public int CompareTo(object obj)
{
if (obj is not LiberateStatus second) return -1;
if (obj is not LiberateButtonStatus second) return -1;
if (IsSeries && !second.IsSeries) return -1;
else if (!IsSeries && second.IsSeries) return 1;
@ -69,7 +69,7 @@ namespace LibationWinForms
public abstract string Misc { get; protected set; }
public abstract string Description { get; protected set; }
public abstract string DisplayTags { get; }
public abstract LiberateStatus Liberate { get; }
public abstract LiberateButtonStatus Liberate { get; }
public abstract object GetMemberValue(string memberName);
#endregion
public IComparer GetMemberComparer(Type memberType) => _memberTypeComparers[memberType];
@ -105,7 +105,7 @@ namespace LibationWinForms
{ typeof(float), new ObjectComparer<float>() },
{ typeof(bool), new ObjectComparer<bool>() },
{ typeof(DateTime), new ObjectComparer<DateTime>() },
{ typeof(LiberateStatus), new ObjectComparer<LiberateStatus>() },
{ typeof(LiberateButtonStatus), new ObjectComparer<LiberateButtonStatus>() },
};
~GridEntry()

View File

@ -20,7 +20,7 @@ namespace LibationWinForms
{
base.Paint(graphics, clipBounds, cellBounds, rowIndex, elementState, null, null, null, cellStyle, advancedBorderStyle, paintParts);
if (value is LiberateStatus status)
if (value is LiberateButtonStatus status)
{
if (status.IsSeries)
{

View File

@ -53,7 +53,7 @@ namespace LibationWinForms
public override string DisplayTags => string.Join("\r\n", Book.UserDefinedItem.TagsEnumerated);
// these 2 values being in 1 field is the trick behind getting the liberated+pdf 'stoplight' icon to draw. See: LiberateDataGridViewImageButtonCell.Paint
public override LiberateStatus Liberate
public override LiberateButtonStatus Liberate
{
get
{
@ -64,7 +64,7 @@ namespace LibationWinForms
_pdfStatus = LibraryCommands.Pdf_Status(LibraryBook.Book);
lastStatusUpdate = DateTime.Now;
}
return new LiberateStatus { BookStatus = _bookStatus, PdfStatus = _pdfStatus, IsSeries = false };
return new LiberateButtonStatus { BookStatus = _bookStatus, PdfStatus = _pdfStatus, IsSeries = false };
}
}
#endregion

View File

@ -149,6 +149,8 @@ namespace LibationWinForms.grid
//Add episode beneath the parent
int seriesIndex = bindingList.IndexOf(series);
bindingList.Insert(seriesIndex + 1, lb);
series.NotifyPropertyChanged();
}
else
//Add the new product
@ -178,7 +180,9 @@ namespace LibationWinForms.grid
foreach (var removed in removedBooks.Where(b => b.Parent is not null))
{
((SeriesEntry)removed.Parent).Children.Remove(removed);
var series = removed.Parent as SeriesEntry;
series.Children.Remove(removed);
series.NotifyPropertyChanged();
}
//Remove series that have no children

View File

@ -1,12 +1,8 @@
using DataLayer;
using Dinah.Core;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LibationWinForms
{
@ -51,13 +47,13 @@ namespace LibationWinForms
public override string Description { get; protected set; } = string.Empty;
public override string DisplayTags { get; } = string.Empty;
public override LiberateStatus Liberate => _liberate;
public override LiberateButtonStatus Liberate => _liberate;
protected override Book Book => SeriesBook.Book;
private SeriesBook SeriesBook { get; set; }
private LiberateStatus _liberate = new LiberateStatus { IsSeries = true };
private LiberateButtonStatus _liberate = new LiberateButtonStatus { IsSeries = true };
public void setSeriesBook(SeriesBook seriesBook)
{