Browse Source

Merge branch 'master' into feature/textbox-selectedtext

pull/3658/head
Steven Kirk 7 years ago
committed by GitHub
parent
commit
5115fc2847
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      azure-pipelines.yml
  2. 9
      src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs

8
azure-pipelines.yml

@ -35,16 +35,16 @@ jobs:
vmImage: 'macOS-10.14' vmImage: 'macOS-10.14'
steps: steps:
- task: UseDotNet@2 - task: UseDotNet@2
displayName: 'Use .NET Core SDK 3.1.x' displayName: 'Use .NET Core SDK 3.1.101'
inputs: inputs:
packageType: sdk packageType: sdk
version: 3.1.x version: 3.1.101
- task: UseDotNet@2 - task: UseDotNet@2
displayName: 'Use .NET Core Runtime 3.1.x' displayName: 'Use .NET Core Runtime 3.1.1'
inputs: inputs:
packageType: runtime packageType: runtime
version: 3.1.x version: 3.1.1
- task: CmdLine@2 - task: CmdLine@2
displayName: 'Install Mono 5.18' displayName: 'Install Mono 5.18'

9
src/Avalonia.Styling/Styling/Activators/StyleClassActivator.cs

@ -14,6 +14,7 @@ namespace Avalonia.Styling.Activators
{ {
private readonly IList<string> _match; private readonly IList<string> _match;
private readonly IAvaloniaReadOnlyList<string> _classes; private readonly IAvaloniaReadOnlyList<string> _classes;
private NotifyCollectionChangedEventHandler? _classesChangedHandler;
public StyleClassActivator(IAvaloniaReadOnlyList<string> classes, IList<string> match) public StyleClassActivator(IAvaloniaReadOnlyList<string> classes, IList<string> match)
{ {
@ -21,6 +22,9 @@ namespace Avalonia.Styling.Activators
_match = match; _match = match;
} }
private NotifyCollectionChangedEventHandler ClassesChangedHandler =>
_classesChangedHandler ??= ClassesChanged;
public static bool AreClassesMatching(IReadOnlyList<string> classes, IList<string> toMatch) public static bool AreClassesMatching(IReadOnlyList<string> classes, IList<string> toMatch)
{ {
int remainingMatches = toMatch.Count; int remainingMatches = toMatch.Count;
@ -51,16 +55,15 @@ namespace Avalonia.Styling.Activators
return remainingMatches == 0; return remainingMatches == 0;
} }
protected override void Initialize() protected override void Initialize()
{ {
PublishNext(IsMatching()); PublishNext(IsMatching());
_classes.CollectionChanged += ClassesChanged; _classes.CollectionChanged += ClassesChangedHandler;
} }
protected override void Deinitialize() protected override void Deinitialize()
{ {
_classes.CollectionChanged -= ClassesChanged; _classes.CollectionChanged -= ClassesChangedHandler;
} }
private void ClassesChanged(object sender, NotifyCollectionChangedEventArgs e) private void ClassesChanged(object sender, NotifyCollectionChangedEventArgs e)

Loading…
Cancel
Save