From dede306531fc38eef26807cd0eb028f9dbd66470 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Tue, 17 Oct 2017 23:45:35 +0200 Subject: [PATCH] Fixed #1218 --- src/Avalonia.Styling/Styling/Setter.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Avalonia.Styling/Styling/Setter.cs b/src/Avalonia.Styling/Styling/Setter.cs index d065b231ce..eb5218cd6f 100644 --- a/src/Avalonia.Styling/Styling/Setter.cs +++ b/src/Avalonia.Styling/Styling/Setter.cs @@ -141,20 +141,20 @@ namespace Avalonia.Styling { var description = style?.ToString(); - if (sourceInstance.Subject != null) + if (sourceInstance.Mode == BindingMode.TwoWay || sourceInstance.Mode == BindingMode.OneWayToSource) { var activated = new ActivatedSubject(activator, sourceInstance.Subject, description); cloned = new InstancedBinding(activated, sourceInstance.Mode, BindingPriority.StyleTrigger); } - else if (sourceInstance.Observable != null) + else if (sourceInstance.Mode == BindingMode.OneTime) { - var activated = new ActivatedObservable(activator, sourceInstance.Observable, description); - cloned = new InstancedBinding(activated, sourceInstance.Mode, BindingPriority.StyleTrigger); + var activated = new ActivatedValue(activator, sourceInstance.Value, description); + cloned = new InstancedBinding(activated, BindingMode.OneWay, BindingPriority.StyleTrigger); } else { - var activated = new ActivatedValue(activator, sourceInstance.Value, description); - cloned = new InstancedBinding(activated, BindingMode.OneWay, BindingPriority.StyleTrigger); + var activated = new ActivatedObservable(activator, sourceInstance.Observable ?? sourceInstance.Subject, description); + cloned = new InstancedBinding(activated, sourceInstance.Mode, BindingPriority.StyleTrigger); } } else