diff --git a/samples/BindingTest/App.cs b/samples/BindingTest/App.cs index 79222817cd..8399166015 100644 --- a/samples/BindingTest/App.cs +++ b/samples/BindingTest/App.cs @@ -18,7 +18,6 @@ namespace BindingTest Log.Logger = new LoggerConfiguration() .Filter.ByIncludingOnly(Matching.WithProperty("Area", "Property")) - .Filter.ByIncludingOnly(Matching.WithProperty("Property", x => x == "Text")) .MinimumLevel.Verbose() .WriteTo.Trace(outputTemplate: "[{Id:X8}] [{SourceContext}] {Message}") .CreateLogger(); diff --git a/samples/BindingTest/BindingTest.csproj b/samples/BindingTest/BindingTest.csproj index f98cc1dd08..62914fdc13 100644 --- a/samples/BindingTest/BindingTest.csproj +++ b/samples/BindingTest/BindingTest.csproj @@ -50,6 +50,22 @@ + + ..\..\packages\Rx-Core.2.2.5\lib\net45\System.Reactive.Core.dll + True + + + ..\..\packages\Rx-Interfaces.2.2.5\lib\net45\System.Reactive.Interfaces.dll + True + + + ..\..\packages\Rx-Linq.2.2.5\lib\net45\System.Reactive.Linq.dll + True + + + ..\..\packages\Rx-PlatformServices.2.2.5\lib\net45\System.Reactive.PlatformServices.dll + True + @@ -64,6 +80,7 @@ + diff --git a/samples/BindingTest/MainWindow.paml b/samples/BindingTest/MainWindow.paml index 3ac2621738..e42dd640e0 100644 --- a/samples/BindingTest/MainWindow.paml +++ b/samples/BindingTest/MainWindow.paml @@ -1,9 +1,15 @@  - - - - - - + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/BindingTest/ViewModels/MainWindowViewModel.cs b/samples/BindingTest/ViewModels/MainWindowViewModel.cs index e8ba113eb8..59e4b42f3e 100644 --- a/samples/BindingTest/ViewModels/MainWindowViewModel.cs +++ b/samples/BindingTest/ViewModels/MainWindowViewModel.cs @@ -1,4 +1,6 @@ -using ReactiveUI; +using System; +using System.Collections.ObjectModel; +using ReactiveUI; namespace BindingTest.ViewModels { @@ -6,6 +8,26 @@ namespace BindingTest.ViewModels { private string _simpleBinding = "Simple Binding"; + public MainWindowViewModel() + { + Items = new ObservableCollection + { + new TestItem { StringValue = "Foo" }, + new TestItem { StringValue = "Bar" }, + new TestItem { StringValue = "Baz" }, + }; + + ShuffleItems = ReactiveCommand.Create(); + ShuffleItems.Subscribe(_ => + { + var r = new Random(); + Items[r.Next(Items.Count)] = Items[r.Next(Items.Count)]; + }); + } + + public ObservableCollection Items { get; } + public ReactiveCommand ShuffleItems { get; } + public string SimpleBinding { get { return _simpleBinding; } diff --git a/samples/BindingTest/ViewModels/TestItem.cs b/samples/BindingTest/ViewModels/TestItem.cs new file mode 100644 index 0000000000..759f8ac974 --- /dev/null +++ b/samples/BindingTest/ViewModels/TestItem.cs @@ -0,0 +1,15 @@ +using ReactiveUI; + +namespace BindingTest.ViewModels +{ + public class TestItem : ReactiveObject + { + private string stringValue = "String Value"; + + public string StringValue + { + get { return stringValue; } + set { this.RaiseAndSetIfChanged(ref this.stringValue, value); } + } + } +} diff --git a/samples/BindingTest/packages.config b/samples/BindingTest/packages.config index 6a1eddec98..2bac0ad760 100644 --- a/samples/BindingTest/packages.config +++ b/samples/BindingTest/packages.config @@ -1,5 +1,10 @@  + + + + + \ No newline at end of file diff --git a/src/Markup/Perspex.Markup.Xaml/OmniXAML b/src/Markup/Perspex.Markup.Xaml/OmniXAML index 49e6ec001f..c890902fba 160000 --- a/src/Markup/Perspex.Markup.Xaml/OmniXAML +++ b/src/Markup/Perspex.Markup.Xaml/OmniXAML @@ -1 +1 @@ -Subproject commit 49e6ec001f5873cf2290e0bc1f6f06ca9b9cf808 +Subproject commit c890902fbaecb4752ed8e9fde2571396794fe06d diff --git a/src/Perspex.Base/PerspexObject.cs b/src/Perspex.Base/PerspexObject.cs index 0c27fe9453..4d0ec855fd 100644 --- a/src/Perspex.Base/PerspexObject.cs +++ b/src/Perspex.Base/PerspexObject.cs @@ -187,7 +187,7 @@ namespace Perspex if (sourceBinding == null && mode > BindingMode.OneWay) { - throw new InvalidOperationException("Can only bind OneWay to plain IObservable."); + mode = BindingMode.OneWay; } switch (mode)