Browse Source

Merge branch 'master' of https://github.com/AvaloniaUI/Avalonia

Jeremy Koritzinsky 9 years ago
parent
commit
a574f0a377

+ 2 - 0
src/Markup/Avalonia.Markup.Xaml/Templates/MemberSelector.cs

@@ -51,6 +51,8 @@ namespace Avalonia.Markup.Xaml.Templates
 
             object result = _memberValueNode.CurrentValue.Target;
 
+            _expressionNode.Target = null;
+
             if (result == AvaloniaProperty.UnsetValue)
             {
                 return null;

+ 17 - 0
tests/Avalonia.Markup.Xaml.UnitTests/Templates/MemberSelectorTests.cs

@@ -157,6 +157,23 @@ namespace Avalonia.Markup.Xaml.UnitTests.Templates
             Assert.Equal(1, selector.Select(data));
         }
 
+        [Fact]
+        public void Should_Support_Change_Of_Target_Value()
+        {
+            var selector = new MemberSelector() { MemberName = "StringValue" };
+
+            var data = new Item()
+            {
+                StringValue = "Value1"
+            };
+
+            Assert.Same("Value1", selector.Select(data));
+
+            data.StringValue = "Value2";
+
+            Assert.Same("Value2", selector.Select(data));
+        }
+
         private class Item
         {
             public Item Child { get; set; }