Browse Source

Implemented binding scheduling via service injection.

pull/790/head
Jeremy Koritzinsky 10 years ago
parent
commit
298fa627f8
  1. 7
      src/Avalonia.Base/AvaloniaObject.cs
  2. 4
      src/Avalonia.Controls/Application.cs

7
src/Avalonia.Base/AvaloniaObject.cs

@ -12,6 +12,7 @@ using Avalonia.Diagnostics;
using Avalonia.Logging; using Avalonia.Logging;
using Avalonia.Threading; using Avalonia.Threading;
using Avalonia.Utilities; using Avalonia.Utilities;
using System.Reactive.Concurrency;
namespace Avalonia namespace Avalonia
{ {
@ -304,6 +305,12 @@ namespace Avalonia
VerifyAccess(); VerifyAccess();
var scheduler = AvaloniaLocator.Current.GetService<IScheduler>();
if (scheduler != null)
{
source = source.ObserveOn(scheduler);
}
if (property.IsDirect) if (property.IsDirect)
{ {
if (property.IsReadOnly) if (property.IsReadOnly)

4
src/Avalonia.Controls/Application.cs

@ -11,6 +11,7 @@ using Avalonia.Layout;
using Avalonia.Rendering; using Avalonia.Rendering;
using Avalonia.Styling; using Avalonia.Styling;
using Avalonia.Threading; using Avalonia.Threading;
using System.Reactive.Concurrency;
namespace Avalonia namespace Avalonia
{ {
@ -175,7 +176,8 @@ namespace Avalonia
.Bind<IKeyboardNavigationHandler>().ToTransient<KeyboardNavigationHandler>() .Bind<IKeyboardNavigationHandler>().ToTransient<KeyboardNavigationHandler>()
.Bind<IStyler>().ToConstant(_styler) .Bind<IStyler>().ToConstant(_styler)
.Bind<ILayoutManager>().ToSingleton<LayoutManager>() .Bind<ILayoutManager>().ToSingleton<LayoutManager>()
.Bind<IApplicationLifecycle>().ToConstant(this); .Bind<IApplicationLifecycle>().ToConstant(this)
.Bind<IScheduler>().ToConstant(AvaloniaScheduler.Instance);
} }
} }
} }

Loading…
Cancel
Save