diff --git a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
index d97ab89a09..1c3f453280 100644
--- a/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
+++ b/src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
@@ -64,9 +64,9 @@
-
-
-
+
+
+
diff --git a/src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs b/src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs
index 90c1aa2894..37226ee74b 100644
--- a/src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs
+++ b/src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs
@@ -41,14 +41,14 @@ namespace Avalonia.Markup.Data
};
///
- /// An ordered collection of value handlers that can be used to customize the handling
- /// of certain values.
+ /// An ordered collection of stream plugins that can be used to customize the behavior
+ /// of the '^' stream binding operator.
///
- public static readonly IList ValueHandlers =
- new List
+ public static readonly IList StreamHandlers =
+ new List
{
- new TaskValuePlugin(),
- new ObservableValuePlugin(),
+ new TaskStreamPlugin(),
+ new ObservableStreamPlugin(),
};
private static readonly object UninitializedValue = new object();
diff --git a/src/Markup/Avalonia.Markup/Data/Plugins/IValuePlugin.cs b/src/Markup/Avalonia.Markup/Data/Plugins/IStreamPlugin.cs
similarity index 89%
rename from src/Markup/Avalonia.Markup/Data/Plugins/IValuePlugin.cs
rename to src/Markup/Avalonia.Markup/Data/Plugins/IStreamPlugin.cs
index fb285c6d73..efb2e2d93a 100644
--- a/src/Markup/Avalonia.Markup/Data/Plugins/IValuePlugin.cs
+++ b/src/Markup/Avalonia.Markup/Data/Plugins/IStreamPlugin.cs
@@ -6,9 +6,9 @@ using System;
namespace Avalonia.Markup.Data.Plugins
{
///
- /// Defines how values are observed by an .
+ /// Defines a plugin that handles the '^' stream binding operator.
///
- public interface IValuePlugin
+ public interface IStreamPlugin
{
///
/// Checks whether this plugin handles the specified value.
diff --git a/src/Markup/Avalonia.Markup/Data/Plugins/ObservableValuePlugin.cs b/src/Markup/Avalonia.Markup/Data/Plugins/ObservableStreamPlugin.cs
similarity index 62%
rename from src/Markup/Avalonia.Markup/Data/Plugins/ObservableValuePlugin.cs
rename to src/Markup/Avalonia.Markup/Data/Plugins/ObservableStreamPlugin.cs
index a406fc55b9..a1da42d28f 100644
--- a/src/Markup/Avalonia.Markup/Data/Plugins/ObservableValuePlugin.cs
+++ b/src/Markup/Avalonia.Markup/Data/Plugins/ObservableStreamPlugin.cs
@@ -2,32 +2,20 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
-using System.Reactive.Linq;
-using System.Reactive.Subjects;
-using System.Reflection;
-using System.Threading.Tasks;
-using System.Windows.Input;
-using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
{
///
- /// Handles binding to s in an .
+ /// Handles binding to s for the '^' stream binding operator.
///
- public class ObservableValuePlugin : IValuePlugin
+ public class ObservableStreamPlugin : IStreamPlugin
{
///
/// Checks whether this plugin handles the specified value.
///
/// A weak reference to the value.
/// True if the plugin can handle the value; otherwise false.
- public virtual bool Match(WeakReference reference)
- {
- var target = reference.Target;
-
- // ReactiveCommand is an IObservable but we want to bind to it, not its value.
- return target is IObservable