0
votes

I am trying to learn ReactiveUI, and am currently trying to set up the Routing feature. I have been "following" the Play rxui-5-update branch on github:

https://github.com/play/play-windows/tree/rxui5-update/Play

In my MainWindow.xaml where I am setting up the RoutedViewHost I am getting the following error:

Invalid cross-thread access

...on the following line:

The same error is generated within MainWindow.xaml of the rxui5 version of Play.

1
Call stackkkkkkkkkkkkk - Ana Betts
> System.Reactive.Core.dll!System.Reactive.Concurrency.AsyncLock.Wait(System.Action action) + 0x202 bytes System.Reactive.Linq.dll!System.Reactive.TailRecursiveSink<ReactiveUI.IObservedChange<object,object>>.Run.AnonymousMethod__0(System.Action self) + 0x65 bytes System.Reactive.Core.dll!System.Reactive.Concurrency.Scheduler.Schedule.AnonymousMethod__45(System.Action<System.Action> _action, System.Action<System.Action<System.Action>> self) + 0x97 bytes - David
The runtime error is: Window must be the root of the tree. Cannot add Window as a child of Visual. The design time error is: Invalid cross-thread access - David
Another difference between my example and the Play example is that I am loading Windows into my RoutingViewHost as opposed to UserControls as in your example. - David

1 Answers

0
votes

You can't load Windows into a RoutingViewHost because it's a control. Load UserControls into the RoutingViewHost and create a top-level window whose contents are just a RoutingViewHost