Browse Source

Updating PageLayout to notify when one of its members changed

pull/11624/head
enisn 5 years ago
parent
commit
c2d8e12fe4
  1. 6
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs
  2. 23
      framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs

6
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageHeader.razor.cs

@ -4,6 +4,8 @@ using System.Collections.Generic;
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Components.Web.Theming.PageToolbars;
using Volo.Abp.BlazoriseUI;
using System.Linq;
using System.Collections.ObjectModel;
namespace Volo.Abp.AspNetCore.Components.Web.Theming.Layout;
@ -30,8 +32,8 @@ public partial class PageHeader : ComponentBase
[Parameter] // TODO: Consider removing this property in future and use only PageLayout.
public List<BreadcrumbItem> BreadcrumbItems {
get => PageLayout.BreadcrumbItems;
set => PageLayout.BreadcrumbItems = value;
get => PageLayout.BreadcrumbItems.ToList();
set => PageLayout.BreadcrumbItems = new ObservableCollection<BreadcrumbItem>(value);
}
[Parameter]

23
framework/src/Volo.Abp.AspNetCore.Components.Web.Theming/Layout/PageLayout.cs

@ -1,16 +1,29 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using Volo.Abp.AspNetCore.Components.Web.Theming.PageToolbars;
using Volo.Abp.BlazoriseUI;
using Volo.Abp.DependencyInjection;
namespace Volo.Abp.AspNetCore.Components.Web.Theming.Layout;
public class PageLayout : IScopedDependency
public class PageLayout : IScopedDependency, INotifyPropertyChanged
{
private string title;
// TODO: Consider using this property for setting Page Title too.
public virtual string Title { get; set; }
public virtual string Title
{
get => title;
set
{
title = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Title)));
}
}
public virtual ObservableCollection<BreadcrumbItem> BreadcrumbItems { get; set; } = new();
public virtual List<BreadcrumbItem> BreadcrumbItems { get; set; } = new();
public virtual ObservableCollection<PageToolbarItem> ToolbarItems { get; set; } = new();
public virtual List<PageToolbarItem> ToolbarItems { get; set; } = new();
public event PropertyChangedEventHandler PropertyChanged;
}
Loading…
Cancel
Save