diff --git a/.gitmodules b/.gitmodules
index f446fe421e..98b6d076c1 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,7 +1,3 @@
-[submodule "src/Avalonia.ReactiveUI/src"]
- path = src/Avalonia.ReactiveUI/src
- url = https://github.com/AvaloniaUI/ReactiveUI.git
- branch = avalonia-snapshot
[submodule "src/Avalonia.HtmlRenderer/external"]
path = src/Avalonia.HtmlRenderer/external
url = https://github.com/AvaloniaUI/HTML-Renderer.git
diff --git a/Avalonia.sln b/Avalonia.sln
index 391d02382e..39d44cb172 100644
--- a/Avalonia.sln
+++ b/Avalonia.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
-VisualStudioVersion = 15.0.26228.4
+VisualStudioVersion = 15.0.26430.16
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
@@ -159,6 +159,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1
build\Microsoft.Reactive.Testing.props = build\Microsoft.Reactive.Testing.props
build\Moq.props = build\Moq.props
build\NetCore.props = build\NetCore.props
+ build\ReactiveUI.props = build\ReactiveUI.props
build\Rx.props = build\Rx.props
build\Serilog.props = build\Serilog.props
build\Serilog.Sinks.Trace.props = build\Serilog.Sinks.Trace.props
diff --git a/build/ReactiveUI.props b/build/ReactiveUI.props
new file mode 100644
index 0000000000..4473447647
--- /dev/null
+++ b/build/ReactiveUI.props
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/build/Rx.props b/build/Rx.props
index 5d74a6b214..e63055da3e 100644
--- a/build/Rx.props
+++ b/build/Rx.props
@@ -1,11 +1,11 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/samples/BindingTest/App.xaml.cs b/samples/BindingTest/App.xaml.cs
index 7bcaf837a8..42e5716541 100644
--- a/samples/BindingTest/App.xaml.cs
+++ b/samples/BindingTest/App.xaml.cs
@@ -20,6 +20,7 @@ namespace BindingTest
AppBuilder.Configure()
.UsePlatformDetect()
+ .UseReactiveUI()
.Start();
}
diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj
index eab656eb33..b4dd17194b 100644
--- a/samples/BindingTest/BindingTest.csproj
+++ b/samples/BindingTest/BindingTest.csproj
@@ -45,7 +45,6 @@
-
@@ -163,4 +162,5 @@
+
\ No newline at end of file
diff --git a/samples/BindingTest/ViewModels/MainWindowViewModel.cs b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
index d8ea280abf..1116810ccb 100644
--- a/samples/BindingTest/ViewModels/MainWindowViewModel.cs
+++ b/samples/BindingTest/ViewModels/MainWindowViewModel.cs
@@ -28,15 +28,13 @@ namespace BindingTest.ViewModels
SelectedItems = new ObservableCollection();
- ShuffleItems = ReactiveCommand.Create();
- ShuffleItems.Subscribe(_ =>
+ ShuffleItems = ReactiveCommand.Create(() =>
{
var r = new Random();
Items.Move(r.Next(Items.Count), 1);
});
- StringValueCommand = ReactiveCommand.Create();
- StringValueCommand.Subscribe(param =>
+ StringValueCommand = ReactiveCommand.Create
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
@@ -88,5 +41,6 @@
+
\ No newline at end of file
diff --git a/src/Avalonia.ReactiveUI/Properties/AssemblyInfo.cs b/src/Avalonia.ReactiveUI/Properties/AssemblyInfo.cs
index c8a5c5cc41..c9ead6f6e6 100644
--- a/src/Avalonia.ReactiveUI/Properties/AssemblyInfo.cs
+++ b/src/Avalonia.ReactiveUI/Properties/AssemblyInfo.cs
@@ -3,7 +3,4 @@
using System.Reflection;
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
[assembly: AssemblyTitle("Avalonia.ReactiveUI")]
diff --git a/src/Avalonia.ReactiveUI/Registrations.cs b/src/Avalonia.ReactiveUI/Registrations.cs
deleted file mode 100644
index 066aa46dc1..0000000000
--- a/src/Avalonia.ReactiveUI/Registrations.cs
+++ /dev/null
@@ -1,23 +0,0 @@
-// Copyright (c) The Avalonia Project. All rights reserved.
-// Licensed under the MIT license. See licence.md file in the project root for full license information.
-
-using System;
-using System.Reactive.Concurrency;
-using System.Threading;
-
-
-namespace ReactiveUI
-{
- ///
- /// Ignore me. This class is a secret handshake between RxUI and RxUI.Xaml
- /// in order to register certain classes on startup that would be difficult
- /// to register otherwise.
- ///
- public class PlatformRegistrations : IWantsToRegisterStuff
- {
- public void Register(Action, Type> registerFunction)
- {
- RxApp.MainThreadScheduler = new SynchronizationContextScheduler(SynchronizationContext.Current);
- }
- }
-}
diff --git a/src/Avalonia.ReactiveUI/Shims.cs b/src/Avalonia.ReactiveUI/Shims.cs
deleted file mode 100644
index 2729a68d6f..0000000000
--- a/src/Avalonia.ReactiveUI/Shims.cs
+++ /dev/null
@@ -1,34 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace System.Runtime.Serialization
-{
- class IgnoreDataMemberAttribute : Attribute
- {
- }
-
- class DataMemberAttribute : Attribute
- {
- }
- class OnDeserializedAttribute : Attribute
- {
- }
-
- class DataContractAttribute : Attribute
- {
- }
-
- class StreamingContext { }
-}
-
-namespace System.Diagnostics.Contracts
-{
- static class Contract
- {
- public static void Requires(bool condition)
- {
-
- }
- }
-}
diff --git a/src/Avalonia.ReactiveUI/src b/src/Avalonia.ReactiveUI/src
deleted file mode 160000
index 3f725c808b..0000000000
--- a/src/Avalonia.ReactiveUI/src
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3f725c808b1d4c8457f0d3204e0a071aa462cd75
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
index f6f8f6bcb0..48f8c6f396 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Avalonia.Markup.Xaml.UnitTests.csproj
@@ -19,7 +19,6 @@
-
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs
index bd86877404..230e61f300 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests.cs
@@ -10,8 +10,9 @@ using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.Data;
using Moq;
-using ReactiveUI;
using Xunit;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
namespace Avalonia.Markup.Xaml.UnitTests.Data
{
@@ -350,14 +351,25 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data
}
}
- public class Source : ReactiveObject
+ public class Source : INotifyPropertyChanged
{
private string _foo;
public string Foo
{
get { return _foo; }
- set { this.RaiseAndSetIfChanged(ref _foo, value); }
+ set
+ {
+ _foo = value;
+ RaisePropertyChanged();
+ }
+ }
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ private void RaisePropertyChanged([CallerMemberName] string prop = "")
+ {
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
}
}
diff --git a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Source.cs b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Source.cs
index 778a93d326..c6006f3afb 100644
--- a/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Source.cs
+++ b/tests/Avalonia.Markup.Xaml.UnitTests/Data/BindingTests_Source.cs
@@ -6,8 +6,9 @@ using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.Data;
-using ReactiveUI;
using Xunit;
+using System.ComponentModel;
+using System.Runtime.CompilerServices;
namespace Avalonia.Markup.Xaml.UnitTests.Data
{
@@ -24,15 +25,26 @@ namespace Avalonia.Markup.Xaml.UnitTests.Data
Assert.Equal(target.Text, "foo");
}
-
- public class Source : ReactiveObject
+
+ public class Source : INotifyPropertyChanged
{
private string _foo;
public string Foo
{
get { return _foo; }
- set { this.RaiseAndSetIfChanged(ref _foo, value); }
+ set
+ {
+ _foo = value;
+ RaisePropertyChanged();
+ }
+ }
+
+ public event PropertyChangedEventHandler PropertyChanged;
+
+ private void RaisePropertyChanged([CallerMemberName] string prop = "")
+ {
+ PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
}
}
}