diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj
index 2dc0cd445b..40fff2a35a 100644
--- a/samples/BindingTest/BindingTest.csproj
+++ b/samples/BindingTest/BindingTest.csproj
@@ -85,6 +85,7 @@
+
diff --git a/samples/BindingTest/MainWindow.xaml b/samples/BindingTest/MainWindow.xaml
index 95f671fd84..48438655d4 100644
--- a/samples/BindingTest/MainWindow.xaml
+++ b/samples/BindingTest/MainWindow.xaml
@@ -95,8 +95,9 @@
-
+
+
diff --git a/samples/BindingTest/ViewModels/MainWindowViewModel.cs b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
index 4b58bf2279..74c1b68705 100644
--- a/samples/BindingTest/ViewModels/MainWindowViewModel.cs
+++ b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
@@ -15,6 +15,7 @@ namespace BindingTest.ViewModels
private string _stringValue = "Simple Binding";
private bool _booleanFlag = false;
private string _currentTime;
+ private NestedCommandViewModel _nested;
public MainWindowViewModel()
{
@@ -39,6 +40,7 @@ namespace BindingTest.ViewModels
{
BooleanFlag = !BooleanFlag;
StringValue = param.ToString();
+ NestedModel = _nested ?? new NestedCommandViewModel();
});
Task.Run(() =>
@@ -90,5 +92,11 @@ namespace BindingTest.ViewModels
public DataAnnotationsErrorViewModel DataAnnotationsValidation { get; } = new DataAnnotationsErrorViewModel();
public ExceptionErrorViewModel ExceptionDataValidation { get; } = new ExceptionErrorViewModel();
public IndeiErrorViewModel IndeiDataValidation { get; } = new IndeiErrorViewModel();
+
+ public NestedCommandViewModel NestedModel
+ {
+ get { return _nested; }
+ private set { this.RaiseAndSetIfChanged(ref _nested, value); }
+ }
}
}
diff --git a/samples/BindingTest/ViewModels/NestedCommandViewModel.cs b/samples/BindingTest/ViewModels/NestedCommandViewModel.cs
new file mode 100644
index 0000000000..3eca481c68
--- /dev/null
+++ b/samples/BindingTest/ViewModels/NestedCommandViewModel.cs
@@ -0,0 +1,20 @@
+using ReactiveUI;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Input;
+
+namespace BindingTest.ViewModels
+{
+ public class NestedCommandViewModel : ReactiveObject
+ {
+ public NestedCommandViewModel()
+ {
+ Command = ReactiveCommand.Create();
+ }
+
+ public ICommand Command { get; }
+ }
+}
diff --git a/src/Avalonia.Controls/Button.cs b/src/Avalonia.Controls/Button.cs
index 8f617466ed..5d878e87cb 100644
--- a/src/Avalonia.Controls/Button.cs
+++ b/src/Avalonia.Controls/Button.cs
@@ -4,6 +4,7 @@
using System;
using System.Linq;
using System.Windows.Input;
+using Avalonia.Data;
using Avalonia.Input;
using Avalonia.Interactivity;
using Avalonia.Rendering;
@@ -41,8 +42,9 @@ namespace Avalonia.Controls
///
/// Defines the property.
///
- public static readonly StyledProperty CommandProperty =
- AvaloniaProperty.Register