Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Move RxUI-Routing into RxUI-Core and RxUI-Xaml.

Move Validation back to RxUI-Core.
Validation classes are not available on WP and therefore currently cause compile errors.
  • Loading branch information...
commit c095e49a639a55745db322d0422506b379d01d5c 1 parent 42809cb
Johan Laanstra jlaanstra authored
Showing with 178 additions and 448 deletions.
  1. +0 −4 MobileSample-WP8/MobileSample-WP8.csproj
  2. +0 −4 MobileSample-WinRT/MobileSample-WinRT.csproj
  3. +0 −8 ReactiveUI.Blend/ReactiveUI.Blend_Net45.csproj
  4. +1 −5 ReactiveUI.Blend/ReactiveUI.Blend_WP8.csproj
  5. +0 −4 ReactiveUI.Mobile/ReactiveUI.Mobile_WP8.csproj
  6. +0 −4 ReactiveUI.Mobile/ReactiveUI.Mobile_WinRT.csproj
  7. +3 −3 ReactiveUI.NLog/ReactiveUI.NLog_Net45.csproj
  8. +0 −6 ReactiveUI.NLog/ReactiveUI.NLog_WP8.csproj
  9. +0 −90 ReactiveUI.Routing/Interfaces.cs
  10. +0 −11 ReactiveUI.Routing/ReactiveUI.Routing_Net45.csproj
  11. +0 −7 ReactiveUI.Routing/ReactiveUI.Routing_SL5.csproj
  12. +1 −8 ReactiveUI.Routing/ReactiveUI.Routing_WP7.csproj
  13. +0 −7 ReactiveUI.Routing/ReactiveUI.Routing_WP8.csproj
  14. +0 −8 ReactiveUI.Routing/ReactiveUI.Routing_WinRT.csproj
  15. +0 −18 ReactiveUI.Routing/ServiceLocationRegistration.cs
  16. +1 −7 ReactiveUI.Testing/ReactiveUI.Testing_Net45.csproj
  17. +0 −4 ReactiveUI.Tests/ReactiveUI.Tests_Net45.csproj
  18. 0  {ReactiveUI.Routing → ReactiveUI.Xaml}/AutoDataTemplateBindingHook.cs
  19. +3 −7 ReactiveUI.Xaml/ReactiveUI.Xaml_Net45.csproj
  20. +3 −1 ReactiveUI.Xaml/ReactiveUI.Xaml_SL5.csproj
  21. +3 −0  ReactiveUI.Xaml/ReactiveUI.Xaml_WP7.csproj
  22. +3 −6 ReactiveUI.Xaml/ReactiveUI.Xaml_WP8.csproj
  23. +4 −0 ReactiveUI.Xaml/ReactiveUI.Xaml_WinRT.csproj
  24. 0  {ReactiveUI.Routing → ReactiveUI.Xaml}/RoutedViewHost.cs
  25. +2 −1  ReactiveUI.Xaml/ServiceLocationRegistration.cs
  26. 0  ReactiveUI.Routing/WinRTShims.cs → ReactiveUI.Xaml/TransitioningContentControl.WinRT.cs
  27. 0  {ReactiveUI.Routing → ReactiveUI.Xaml}/ViewModelViewHost.cs
  28. +0 −180 ReactiveUI.sln
  29. +81 −0 ReactiveUI/Interfaces.cs
  30. +3 −0  ReactiveUI/ReactiveUI.csproj
  31. +3 −0  ReactiveUI/ReactiveUI_SL5.csproj
  32. +3 −0  ReactiveUI/ReactiveUI_WP7.csproj
  33. 0  {ReactiveUI.Routing → ReactiveUI}/RoutingState.cs
  34. 0  {ReactiveUI.Routing → ReactiveUI}/RxRouting.cs
  35. +64 −55 {ReactiveUI.Xaml → ReactiveUI}/Validation.cs
4 MobileSample-WP8/MobileSample-WP8.csproj
View
@@ -169,10 +169,6 @@
<Project>{B90F3D02-1E3A-4DD7-8E00-30F28B6DCC1E}</Project>
<Name>ReactiveUI.Mobile_WP8</Name>
</ProjectReference>
- <ProjectReference Include="..\ReactiveUI.Routing\ReactiveUI.Routing_WP8.csproj">
- <Project>{9F70B056-893E-487D-8DD1-C012C4440618}</Project>
- <Name>ReactiveUI.Routing_WP8</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WP8.csproj">
<Project>{F9459904-F785-4255-866A-A619787CB895}</Project>
<Name>ReactiveUI.Xaml_WP8</Name>
4 MobileSample-WinRT/MobileSample-WinRT.csproj
View
@@ -180,10 +180,6 @@
<Project>{30540f2b-0f4c-40a0-b3b6-ffddfa09d8fd}</Project>
<Name>ReactiveUI.Mobile_WinRT</Name>
</ProjectReference>
- <ProjectReference Include="..\ReactiveUI.Routing\ReactiveUI.Routing_WinRT.csproj">
- <Project>{b73da536-0ad8-40a1-a2a7-f8491ce584f6}</Project>
- <Name>ReactiveUI.Routing_WinRT</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WinRT.csproj">
<Project>{689ec7c5-2d81-4124-929e-397b330cc358}</Project>
<Name>ReactiveUI.Xaml_WinRT</Name>
8 ReactiveUI.Blend/ReactiveUI.Blend_Net45.csproj
View
@@ -83,14 +83,6 @@
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_Net45.csproj">
- <Project>{761ac9ba-4a9c-440c-9b6c-2569978f0610}</Project>
- <Name>ReactiveUI.Xaml_Net45</Name>
- </ProjectReference>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_Net45.csproj">
- <Project>{292a477b-bb94-43c1-984e-e177ef9fedb7}</Project>
- <Name>ReactiveUI_Net45</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI\ReactiveUI.csproj">
<Project>{464cb812-f99f-401b-be4c-e8f0515cd19d}</Project>
<Name>ReactiveUI</Name>
6 ReactiveUI.Blend/ReactiveUI.Blend_WP8.csproj
View
@@ -96,10 +96,6 @@
<Project>{06C34984-B706-49BF-85BB-9282DD6238D1}</Project>
<Name>ReactiveUI.Xaml_WP8</Name>
</ProjectReference>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_WP8.csproj">
- <Project>{FAEA4F2E-017C-47AF-B467-4D2C7210CDEF}</Project>
- <Name>ReactiveUI_WP8</Name>
- </ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
@@ -119,4 +115,4 @@
<Target Name="AfterBuild">
</Target>
-->
-</Project>
+</Project>
4 ReactiveUI.Mobile/ReactiveUI.Mobile_WP8.csproj
View
@@ -126,10 +126,6 @@
<Compile Include="WP8AutoSuspendApplication.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI.Routing\ReactiveUI.Routing_WP8.csproj">
- <Project>{9F70B056-893E-487D-8DD1-C012C4440618}</Project>
- <Name>ReactiveUI.Routing_WP8</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WP8.csproj">
<Project>{06C34984-B706-49BF-85BB-9282DD6238D1}</Project>
<Name>ReactiveUI.Xaml_WP8</Name>
4 ReactiveUI.Mobile/ReactiveUI.Mobile_WinRT.csproj
View
@@ -135,10 +135,6 @@
</Reference>
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI.Routing\ReactiveUI.Routing_WinRT.csproj">
- <Project>{B73DA536-0AD8-40A1-A2A7-F8491CE584F6}</Project>
- <Name>ReactiveUI.Routing_WinRT</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WinRT.csproj">
<Project>{689ec7c5-2d81-4124-929e-397b330cc358}</Project>
<Name>ReactiveUI.Xaml_WinRT</Name>
6 ReactiveUI.NLog/ReactiveUI.NLog_Net45.csproj
View
@@ -132,9 +132,9 @@
<Compile Include="ServiceLocationRegistration.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_Net40.csproj">
- <Project>{292a477b-bb94-43c1-984e-e177ef9fedb7}</Project>
- <Name>ReactiveUI_Net40</Name>
+ <ProjectReference Include="..\ReactiveUI\ReactiveUI.csproj">
+ <Project>{464cb812-f99f-401b-be4c-e8f0515cd19d}</Project>
+ <Name>ReactiveUI</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
6 ReactiveUI.NLog/ReactiveUI.NLog_WP8.csproj
View
@@ -106,12 +106,6 @@
<Reference Include="System.Net" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_WP8.csproj">
- <Project>{FAEA4F2E-017C-47AF-B467-4D2C7210CDEF}</Project>
- <Name>ReactiveUI_WP8</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
<Compile Include="NLogLogger.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
90 ReactiveUI.Routing/Interfaces.cs
View
@@ -1,90 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Reactive.Subjects;
-using System.Text;
-using ReactiveUI.Xaml;
-
-namespace ReactiveUI.Routing
-{
- // NB: This is just a name we can bolt extension methods to
- public interface INavigateCommand : IReactiveCommand { }
-
- public interface IRoutingState : IReactiveNotifyPropertyChanged
- {
- /// <summary>
- /// Represents the current navigation stack, the last element in the
- /// collection being the currently visible ViewModel.
- /// </summary>
- ReactiveCollection<IRoutableViewModel> NavigationStack { get; }
-
- /// <summary>
- /// Navigates back to the previous element in the stack.
- /// </summary>
- IReactiveCommand NavigateBack { get; }
-
- /// <summary>
- /// Navigates to the a new element in the stack - the Execute parameter
- /// must be a ViewModel that implements IRoutableViewModel.
- /// </summary>
- INavigateCommand Navigate { get; }
-
- /// <summary>
- /// Navigates to a new element and resets the navigation stack (i.e. the
- /// new ViewModel will now be the only element in the stack) - the
- /// Execute parameter must be a ViewModel that implements
- /// IRoutableViewModel.
- /// </summary>
- INavigateCommand NavigateAndReset { get; }
- }
-
- /// <summary>
- /// Implement this interface for ViewModels that can be navigated to.
- /// </summary>
- public interface IRoutableViewModel : IReactiveNotifyPropertyChanged
- {
- /// <summary>
- /// A string token representing the current ViewModel, such as 'login' or 'user'
- /// </summary>
- string UrlPathSegment { get; }
-
- /// <summary>
- /// The IScreen that this ViewModel is currently being shown in. This
- /// is usually passed into the ViewModel in the Constructor and saved
- /// as a ReadOnly Property.
- /// </summary>
- IScreen HostScreen { get; }
- }
-
- /// <summary>
- /// IScreen represents any object that is hosting its own routing -
- /// usually this object is your AppViewModel or MainWindow object.
- /// </summary>
- public interface IScreen
- {
- /// <summary>
- /// The Router associated with this Screen.
- /// </summary>
- IRoutingState Router { get; }
- }
-
- /// <summary>
- /// Allows an additional string to make view resolution more specific than just a type.
- /// </summary>
- public class ViewContractAttribute : Attribute
- {
- /// <summary>
- /// A unique string that will be used along with the type to resolve a View
- /// </summary>
- public string Contract { get; set; }
- }
-
- public static class ObservableUtils
- {
- public static IConnectableObservable<T> PermaRef<T>(this IConnectableObservable<T> This)
- {
- This.Connect();
- return This;
- }
- }
-}
11 ReactiveUI.Routing/ReactiveUI.Routing_Net45.csproj
View
@@ -68,20 +68,9 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
- <Compile Include="AutoDataTemplateBindingHook.cs" />
- <Compile Include="Interfaces.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="RoutingState.cs" />
- <Compile Include="RxRouting.cs" />
- <Compile Include="RoutedViewHost.cs" />
- <Compile Include="ServiceLocationRegistration.cs" />
- <Compile Include="ViewModelViewHost.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_Net45.csproj">
- <Project>{761ac9ba-4a9c-440c-9b6c-2569978f0610}</Project>
- <Name>ReactiveUI.Xaml_Net45</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI\ReactiveUI.csproj">
<Project>{464cb812-f99f-401b-be4c-e8f0515cd19d}</Project>
<Name>ReactiveUI</Name>
7 ReactiveUI.Routing/ReactiveUI.Routing_SL5.csproj
View
@@ -88,14 +88,7 @@
<Reference Include="System.Windows.Browser" />
</ItemGroup>
<ItemGroup>
- <Compile Include="AutoDataTemplateBindingHook.cs" />
- <Compile Include="Interfaces.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="RoutedViewHost.cs" />
- <Compile Include="RoutingState.cs" />
- <Compile Include="RxRouting.cs" />
- <Compile Include="ServiceLocationRegistration.cs" />
- <Compile Include="ViewModelViewHost.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_SL5.csproj">
9 ReactiveUI.Routing/ReactiveUI.Routing_WP7.csproj
View
@@ -114,14 +114,7 @@
<Reference Include="System.Net" />
</ItemGroup>
<ItemGroup>
- <Compile Include="AutoDataTemplateBindingHook.cs" />
- <Compile Include="Interfaces.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="RoutedViewHost.cs" />
- <Compile Include="RoutingState.cs" />
- <Compile Include="RxRouting.cs" />
- <Compile Include="ServiceLocationRegistration.cs" />
- <Compile Include="ViewModelViewHost.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WP7.csproj">
@@ -144,4 +137,4 @@
<Target Name="AfterBuild">
</Target>
-->
-</Project>
+</Project>
7 ReactiveUI.Routing/ReactiveUI.Routing_WP8.csproj
View
@@ -111,14 +111,7 @@
<Reference Include="System.Net" />
</ItemGroup>
<ItemGroup>
- <Compile Include="AutoDataTemplateBindingHook.cs" />
- <Compile Include="Interfaces.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="RoutedViewHost.cs" />
- <Compile Include="RoutingState.cs" />
- <Compile Include="RxRouting.cs" />
- <Compile Include="ServiceLocationRegistration.cs" />
- <Compile Include="ViewModelViewHost.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ReactiveUI.Xaml\ReactiveUI.Xaml_WP8.csproj">
8 ReactiveUI.Routing/ReactiveUI.Routing_WinRT.csproj
View
@@ -34,15 +34,7 @@
<DocumentationFile>bin\Release\WinRT45\ReactiveUI.Routing_WinRT.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
- <Compile Include="AutoDataTemplateBindingHook.cs" />
- <Compile Include="Interfaces.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
- <Compile Include="RoutedViewHost.cs" />
- <Compile Include="RoutingState.cs" />
- <Compile Include="RxRouting.cs" />
- <Compile Include="ServiceLocationRegistration.cs" />
- <Compile Include="ViewModelViewHost.cs" />
- <Compile Include="WinRTShims.cs" />
</ItemGroup>
<ItemGroup>
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
18 ReactiveUI.Routing/ServiceLocationRegistration.cs
View
@@ -1,18 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace ReactiveUI.Routing
-{
- public class ServiceLocationRegistration : IWantsToRegisterStuff
- {
- public void Register()
- {
-#if !MONO
- RxApp.Register(typeof(AutoDataTemplateBindingHook), typeof(IPropertyBindingHook));
-#endif
- }
- }
-}
8 ReactiveUI.Testing/ReactiveUI.Testing_Net45.csproj
View
@@ -134,12 +134,6 @@
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_Net45.csproj">
- <Project>{292a477b-bb94-43c1-984e-e177ef9fedb7}</Project>
- <Name>ReactiveUI_Net45</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
@@ -158,4 +152,4 @@
<Target Name="AfterBuild">
</Target>
-->
-</Project>
+</Project>
4 ReactiveUI.Tests/ReactiveUI.Tests_Net45.csproj
View
@@ -137,10 +137,6 @@
<Project>{08d3606b-ee79-43ee-8382-72a1091f1f30}</Project>
<Name>ReactiveUI.NLog_Net45</Name>
</ProjectReference>
- <ProjectReference Include="..\ReactiveUI.Routing\ReactiveUI.Routing_Net45.csproj">
- <Project>{1b7576e0-f1b6-41a7-b607-b521dea1daa9}</Project>
- <Name>ReactiveUI.Routing_Net45</Name>
- </ProjectReference>
<ProjectReference Include="..\ReactiveUI.Testing\ReactiveUI.Testing_Net45.csproj">
<Project>{dd99fd0f-82f6-4c30-930e-4a1d0df01d65}</Project>
<Name>ReactiveUI.Testing_Net45</Name>
0  ReactiveUI.Routing/AutoDataTemplateBindingHook.cs → ReactiveUI.Xaml/AutoDataTemplateBindingHook.cs
View
File renamed without changes
10 ReactiveUI.Xaml/ReactiveUI.Xaml_Net45.csproj
View
@@ -130,16 +130,18 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="AutoDataTemplateBindingHook.cs" />
<Compile Include="BindingTypeConverters.cs" />
<Compile Include="CommandBinding.cs" />
<Compile Include="CreatesCommandBinding.cs" />
<Compile Include="DependencyObjectObservableForProperty.cs" />
<Compile Include="Errors.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="RoutedViewHost.cs" />
<Compile Include="SampleDataBinder.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
<Compile Include="TransitioningContentControl.cs" />
- <Compile Include="Validation.cs" />
+ <Compile Include="ViewModelViewHost.cs" />
<Compile Include="WaitForDispatcherScheduler.cs" />
<Compile Include="XamlDefaultPropertyBinding.cs" />
</ItemGroup>
@@ -150,12 +152,6 @@
</Page>
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_Net45.csproj">
- <Project>{292a477b-bb94-43c1-984e-e177ef9fedb7}</Project>
- <Name>ReactiveUI_Net45</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
4 ReactiveUI.Xaml/ReactiveUI.Xaml_SL5.csproj
View
@@ -88,16 +88,18 @@
<Reference Include="System.Windows.Browser" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="AutoDataTemplateBindingHook.cs" />
<Compile Include="BindingTypeConverters.cs" />
<Compile Include="CommandBinding.cs" />
<Compile Include="CreatesCommandBinding.cs" />
<Compile Include="DependencyObjectObservableForProperty.cs" />
<Compile Include="Errors.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="RoutedViewHost.cs" />
<Compile Include="SampleDataBinder.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
<Compile Include="TransitioningContentControl.cs" />
- <Compile Include="Validation.cs" />
+ <Compile Include="ViewModelViewHost.cs" />
<Compile Include="WaitForDispatcherScheduler.cs" />
<Compile Include="XamlDefaultPropertyBinding.cs" />
</ItemGroup>
3  ReactiveUI.Xaml/ReactiveUI.Xaml_WP7.csproj
View
@@ -111,17 +111,20 @@
<Reference Include="System.Net" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="AutoDataTemplateBindingHook.cs" />
<Compile Include="BindingTypeConverters.cs" />
<Compile Include="CommandBinding.cs" />
<Compile Include="CreatesCommandBinding.cs" />
<Compile Include="DependencyObjectObservableForProperty.cs" />
<Compile Include="Errors.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="RoutedViewHost.cs" />
<Compile Include="SampleDataBinder.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
<Compile Include="TransitioningContentControl.cs">
<SubType>Code</SubType>
</Compile>
+ <Compile Include="ViewModelViewHost.cs" />
<Compile Include="WaitForDispatcherScheduler.cs" />
<Compile Include="XamlDefaultPropertyBinding.cs" />
</ItemGroup>
9 ReactiveUI.Xaml/ReactiveUI.Xaml_WP8.csproj
View
@@ -108,27 +108,24 @@
<Reference Include="System.Net" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="AutoDataTemplateBindingHook.cs" />
<Compile Include="BindingTypeConverters.cs" />
<Compile Include="CommandBinding.cs" />
<Compile Include="CreatesCommandBinding.cs" />
<Compile Include="DependencyObjectObservableForProperty.cs" />
<Compile Include="Errors.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="RoutedViewHost.cs" />
<Compile Include="SampleDataBinder.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
<Compile Include="TransitioningContentControl.cs">
<SubType>Code</SubType>
</Compile>
+ <Compile Include="ViewModelViewHost.cs" />
<Compile Include="WaitForDispatcherScheduler.cs" />
<Compile Include="XamlDefaultPropertyBinding.cs" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="..\ReactiveUI\ReactiveUI_WP8.csproj">
- <Project>{FAEA4F2E-017C-47AF-B467-4D2C7210CDEF}</Project>
- <Name>ReactiveUI_WP8</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
<Page Include="Themes\Generic.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
4 ReactiveUI.Xaml/ReactiveUI.Xaml_WinRT.csproj
View
@@ -34,14 +34,18 @@
<DocumentationFile>bin\Release\WinRT45\ReactiveUI.Xaml_WinRT.xml</DocumentationFile>
</PropertyGroup>
<ItemGroup>
+ <Compile Include="AutoDataTemplateBindingHook.cs" />
<Compile Include="BindingTypeConverters.cs" />
<Compile Include="CommandBinding.cs" />
<Compile Include="CreatesCommandBinding.cs" />
<Compile Include="DependencyObjectObservableForProperty.cs" />
<Compile Include="Errors.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="RoutedViewHost.cs" />
<Compile Include="SampleDataBinder.cs" />
<Compile Include="ServiceLocationRegistration.cs" />
+ <Compile Include="TransitioningContentControl.WinRT.cs" />
+ <Compile Include="ViewModelViewHost.cs" />
<Compile Include="WaitForDispatcherScheduler.cs" />
<Compile Include="XamlDefaultPropertyBinding.cs" />
</ItemGroup>
0  ReactiveUI.Routing/RoutedViewHost.cs → ReactiveUI.Xaml/RoutedViewHost.cs
View
File renamed without changes
3  ReactiveUI.Xaml/ServiceLocationRegistration.cs
View
@@ -26,7 +26,8 @@ public void Register()
RxApp.Register(typeof (XamlDefaultPropertyBinding), typeof (IDefaultPropertyBindingProvider));
RxApp.Register(typeof (CreatesCommandBindingViaCommandParameter), typeof(ICreatesCommandBinding));
RxApp.Register(typeof (CreatesCommandBindingViaEvent), typeof(ICreatesCommandBinding));
- RxApp.Register(typeof (BooleanToVisibilityTypeConverter), typeof (IBindingTypeConverter));
+ RxApp.Register(typeof(BooleanToVisibilityTypeConverter), typeof(IBindingTypeConverter));
+ RxApp.Register(typeof(AutoDataTemplateBindingHook), typeof(IPropertyBindingHook));
#endif
#if WINRT
0  ReactiveUI.Routing/WinRTShims.cs → ReactiveUI.Xaml/TransitioningContentControl.WinRT.cs
View
File renamed without changes
0  ReactiveUI.Routing/ViewModelViewHost.cs → ReactiveUI.Xaml/ViewModelViewHost.cs
View
File renamed without changes
180 ReactiveUI.sln
View
@@ -1,7 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI_Net40", "ReactiveUI\ReactiveUI_Net40.csproj", "{292A477B-BB94-43C1-984E-E177EF9FEDB7}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Tests_Net45", "ReactiveUI.Tests\ReactiveUI.Tests_Net45.csproj", "{6FBDE6EA-2202-4A70-8EE4-7BA6D515952E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{BD9762CF-E104-481C-96A6-26E624B86283}"
@@ -13,8 +11,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI_SL5", "ReactiveUI\ReactiveUI_SL5.csproj", "{B3381C78-C099-4902-89D4-B879AA83BFC9}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Blend_Net40", "ReactiveUI.Blend\ReactiveUI.Blend_Net40.csproj", "{3870EA63-AFDF-4D49-B4D6-8299506E67B4}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Blend_SL5", "ReactiveUI.Blend\ReactiveUI.Blend_SL5.csproj", "{1E453720-AEE5-4B34-8660-7AD86E5E05AF}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI_WP7", "ReactiveUI\ReactiveUI_WP7.csproj", "{FAEA4F2E-017C-47AF-B467-4D2C7210CDEF}"
@@ -23,26 +19,14 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Blend_WP7", "Rea
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Tests_SL5", "ReactiveUI.Tests\ReactiveUI.Tests_SL5.csproj", "{007E6D54-44FE-45BA-A364-AD108B7C6CDF}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Xaml_Net40", "ReactiveUI.Xaml\ReactiveUI.Xaml_Net40.csproj", "{761AC9BA-4A9C-440C-9B6C-2569978F0610}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Xaml_SL5", "ReactiveUI.Xaml\ReactiveUI.Xaml_SL5.csproj", "{73804A79-A9FC-48FD-8F7C-E796415A8B3A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Xaml_WP7", "ReactiveUI.Xaml\ReactiveUI.Xaml_WP7.csproj", "{06C34984-B706-49BF-85BB-9282DD6238D1}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_Net40", "ReactiveUI.Testing\ReactiveUI.Testing_Net40.csproj", "{E1F2AD19-276E-4D05-A41A-89AA133CECFC}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_SL5", "ReactiveUI.Testing\ReactiveUI.Testing_SL5.csproj", "{435E1011-E9FE-4E61-8B6D-2627DC6D1F06}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_WP7", "ReactiveUI.Testing\ReactiveUI.Testing_WP7.csproj", "{EDA0969D-5613-4F84-B97D-3658ACEE3D29}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_Net40", "ReactiveUI.Routing\ReactiveUI.Routing_Net40.csproj", "{67038157-092E-4D72-BAF4-049EB1532264}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_SL5", "ReactiveUI.Routing\ReactiveUI.Routing_SL5.csproj", "{2048F4B6-2063-4446-9605-A5B2BE4E9554}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_WP7", "ReactiveUI.Routing\ReactiveUI.Routing_WP7.csproj", "{2B1F887C-E4B9-441A-8147-6A3A00C30BBA}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.NLog_Net40", "ReactiveUI.NLog\ReactiveUI.NLog_Net40.csproj", "{168E460F-6ABC-40AE-B1F4-1712C91952D9}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.NLog_SL5", "ReactiveUI.NLog\ReactiveUI.NLog_SL5.csproj", "{3A3429FB-14E1-4904-9FB1-E5AB81EB6D28}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.NLog_WP7", "ReactiveUI.NLog\ReactiveUI.NLog_WP7.csproj", "{9F347041-278A-4390-BF6C-3E12157DD084}"
@@ -57,12 +41,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_WP8", "R
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Testing_Net45", "ReactiveUI.Testing\ReactiveUI.Testing_Net45.csproj", "{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_WP8", "ReactiveUI.Routing\ReactiveUI.Routing_WP8.csproj", "{9F70B056-893E-487D-8DD1-C012C4440618}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_WinRT", "ReactiveUI.Routing\ReactiveUI.Routing_WinRT.csproj", "{B73DA536-0AD8-40A1-A2A7-F8491CE584F6}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.Routing_Net45", "ReactiveUI.Routing\ReactiveUI.Routing_Net45.csproj", "{1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}"
-EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.NLog_WP8", "ReactiveUI.NLog\ReactiveUI.NLog_WP8.csproj", "{584F60B1-C425-4D17-B90A-8C2AB1EC78D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReactiveUI.NLog_Net45", "ReactiveUI.NLog\ReactiveUI.NLog_Net45.csproj", "{08D3606B-EE79-43EE-8382-72A1091F1F30}"
@@ -98,20 +76,6 @@ Global
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|x64.ActiveCfg = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Debug|x86.ActiveCfg = Debug|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|Any CPU.Build.0 = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|ARM.ActiveCfg = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|x64.ActiveCfg = Release|Any CPU
- {292A477B-BB94-43C1-984E-E177EF9FEDB7}.Release|x86.ActiveCfg = Release|Any CPU
{6FBDE6EA-2202-4A70-8EE4-7BA6D515952E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6FBDE6EA-2202-4A70-8EE4-7BA6D515952E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6FBDE6EA-2202-4A70-8EE4-7BA6D515952E}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -140,20 +104,6 @@ Global
{B3381C78-C099-4902-89D4-B879AA83BFC9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{B3381C78-C099-4902-89D4-B879AA83BFC9}.Release|x64.ActiveCfg = Release|Any CPU
{B3381C78-C099-4902-89D4-B879AA83BFC9}.Release|x86.ActiveCfg = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|x64.ActiveCfg = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Debug|x86.ActiveCfg = Debug|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|Any CPU.Build.0 = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|ARM.ActiveCfg = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|x64.ActiveCfg = Release|Any CPU
- {3870EA63-AFDF-4D49-B4D6-8299506E67B4}.Release|x86.ActiveCfg = Release|Any CPU
{1E453720-AEE5-4B34-8660-7AD86E5E05AF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{1E453720-AEE5-4B34-8660-7AD86E5E05AF}.Debug|Any CPU.Build.0 = Debug|Any CPU
{1E453720-AEE5-4B34-8660-7AD86E5E05AF}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -210,20 +160,6 @@ Global
{007E6D54-44FE-45BA-A364-AD108B7C6CDF}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{007E6D54-44FE-45BA-A364-AD108B7C6CDF}.Release|x64.ActiveCfg = Release|Any CPU
{007E6D54-44FE-45BA-A364-AD108B7C6CDF}.Release|x86.ActiveCfg = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|x64.ActiveCfg = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Debug|x86.ActiveCfg = Debug|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|Any CPU.Build.0 = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|ARM.ActiveCfg = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|x64.ActiveCfg = Release|Any CPU
- {761AC9BA-4A9C-440C-9B6C-2569978F0610}.Release|x86.ActiveCfg = Release|Any CPU
{73804A79-A9FC-48FD-8F7C-E796415A8B3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{73804A79-A9FC-48FD-8F7C-E796415A8B3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{73804A79-A9FC-48FD-8F7C-E796415A8B3A}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -252,20 +188,6 @@ Global
{06C34984-B706-49BF-85BB-9282DD6238D1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{06C34984-B706-49BF-85BB-9282DD6238D1}.Release|x64.ActiveCfg = Release|Any CPU
{06C34984-B706-49BF-85BB-9282DD6238D1}.Release|x86.ActiveCfg = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Debug|x86.ActiveCfg = Debug|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|Any CPU.Build.0 = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|ARM.ActiveCfg = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|x64.ActiveCfg = Release|Any CPU
- {E1F2AD19-276E-4D05-A41A-89AA133CECFC}.Release|x86.ActiveCfg = Release|Any CPU
{435E1011-E9FE-4E61-8B6D-2627DC6D1F06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{435E1011-E9FE-4E61-8B6D-2627DC6D1F06}.Debug|Any CPU.Build.0 = Debug|Any CPU
{435E1011-E9FE-4E61-8B6D-2627DC6D1F06}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -294,62 +216,6 @@ Global
{EDA0969D-5613-4F84-B97D-3658ACEE3D29}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{EDA0969D-5613-4F84-B97D-3658ACEE3D29}.Release|x64.ActiveCfg = Release|Any CPU
{EDA0969D-5613-4F84-B97D-3658ACEE3D29}.Release|x86.ActiveCfg = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|x64.ActiveCfg = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Debug|x86.ActiveCfg = Debug|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|Any CPU.Build.0 = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|ARM.ActiveCfg = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|x64.ActiveCfg = Release|Any CPU
- {67038157-092E-4D72-BAF4-049EB1532264}.Release|x86.ActiveCfg = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|Any CPU.Build.0 = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|ARM.ActiveCfg = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|x64.ActiveCfg = Release|Any CPU
- {2048F4B6-2063-4446-9605-A5B2BE4E9554}.Release|x86.ActiveCfg = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|x64.ActiveCfg = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Debug|x86.ActiveCfg = Debug|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|Any CPU.Build.0 = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|ARM.ActiveCfg = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|x64.ActiveCfg = Release|Any CPU
- {2B1F887C-E4B9-441A-8147-6A3A00C30BBA}.Release|x86.ActiveCfg = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|Any CPU.Build.0 = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|ARM.ActiveCfg = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|x64.ActiveCfg = Release|Any CPU
- {168E460F-6ABC-40AE-B1F4-1712C91952D9}.Release|x86.ActiveCfg = Release|Any CPU
{3A3429FB-14E1-4904-9FB1-E5AB81EB6D28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3A3429FB-14E1-4904-9FB1-E5AB81EB6D28}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3A3429FB-14E1-4904-9FB1-E5AB81EB6D28}.Debug|ARM.ActiveCfg = Debug|Any CPU
@@ -456,52 +322,6 @@ Global
{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|x64.ActiveCfg = Release|Any CPU
{DD99FD0F-82F6-4C30-930E-4A1D0DF01D65}.Release|x86.ActiveCfg = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|ARM.ActiveCfg = Debug|ARM
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|ARM.Build.0 = Debug|ARM
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|Mixed Platforms.ActiveCfg = Debug|x86
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|Mixed Platforms.Build.0 = Debug|x86
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|x64.ActiveCfg = Debug|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|x86.ActiveCfg = Debug|x86
- {9F70B056-893E-487D-8DD1-C012C4440618}.Debug|x86.Build.0 = Debug|x86
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|Any CPU.Build.0 = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|ARM.ActiveCfg = Release|ARM
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|ARM.Build.0 = Release|ARM
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|x64.ActiveCfg = Release|Any CPU
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|x86.ActiveCfg = Release|x86
- {9F70B056-893E-487D-8DD1-C012C4440618}.Release|x86.Build.0 = Release|x86
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|x64.ActiveCfg = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Debug|x86.ActiveCfg = Debug|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|Any CPU.Build.0 = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|ARM.ActiveCfg = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|x64.ActiveCfg = Release|Any CPU
- {B73DA536-0AD8-40A1-A2A7-F8491CE584F6}.Release|x86.ActiveCfg = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|ARM.ActiveCfg = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|x64.ActiveCfg = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Debug|x86.ActiveCfg = Debug|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|Any CPU.Build.0 = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|ARM.ActiveCfg = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|x64.ActiveCfg = Release|Any CPU
- {1B7576E0-F1B6-41A7-B607-B521DEA1DAA9}.Release|x86.ActiveCfg = Release|Any CPU
{584F60B1-C425-4D17-B90A-8C2AB1EC78D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{584F60B1-C425-4D17-B90A-8C2AB1EC78D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{584F60B1-C425-4D17-B90A-8C2AB1EC78D7}.Debug|ARM.ActiveCfg = Debug|ARM
81 ReactiveUI/Interfaces.cs
View
@@ -451,6 +451,87 @@ internal interface IWantsToRegisterStuff
{
void Register();
}
+
+ // NB: This is just a name we can bolt extension methods to
+ public interface INavigateCommand : IReactiveCommand { }
+
+ public interface IRoutingState : IReactiveNotifyPropertyChanged
+ {
+ /// <summary>
+ /// Represents the current navigation stack, the last element in the
+ /// collection being the currently visible ViewModel.
+ /// </summary>
+ ReactiveCollection<IRoutableViewModel> NavigationStack { get; }
+
+ /// <summary>
+ /// Navigates back to the previous element in the stack.
+ /// </summary>
+ IReactiveCommand NavigateBack { get; }
+
+ /// <summary>
+ /// Navigates to the a new element in the stack - the Execute parameter
+ /// must be a ViewModel that implements IRoutableViewModel.
+ /// </summary>
+ INavigateCommand Navigate { get; }
+
+ /// <summary>
+ /// Navigates to a new element and resets the navigation stack (i.e. the
+ /// new ViewModel will now be the only element in the stack) - the
+ /// Execute parameter must be a ViewModel that implements
+ /// IRoutableViewModel.
+ /// </summary>
+ INavigateCommand NavigateAndReset { get; }
+ }
+
+ /// <summary>
+ /// Implement this interface for ViewModels that can be navigated to.
+ /// </summary>
+ public interface IRoutableViewModel : IReactiveNotifyPropertyChanged
+ {
+ /// <summary>
+ /// A string token representing the current ViewModel, such as 'login' or 'user'
+ /// </summary>
+ string UrlPathSegment { get; }
+
+ /// <summary>
+ /// The IScreen that this ViewModel is currently being shown in. This
+ /// is usually passed into the ViewModel in the Constructor and saved
+ /// as a ReadOnly Property.
+ /// </summary>
+ IScreen HostScreen { get; }
+ }
+
+ /// <summary>
+ /// IScreen represents any object that is hosting its own routing -
+ /// usually this object is your AppViewModel or MainWindow object.
+ /// </summary>
+ public interface IScreen
+ {
+ /// <summary>
+ /// The Router associated with this Screen.
+ /// </summary>
+ IRoutingState Router { get; }
+ }
+
+ /// <summary>
+ /// Allows an additional string to make view resolution more specific than just a type.
+ /// </summary>
+ public class ViewContractAttribute : Attribute
+ {
+ /// <summary>
+ /// A unique string that will be used along with the type to resolve a View
+ /// </summary>
+ public string Contract { get; set; }
+ }
+
+ public static class ObservableUtils
+ {
+ public static IConnectableObservable<T> PermaRef<T>(this IConnectableObservable<T> This)
+ {
+ This.Connect();
+ return This;
+ }
+ }
}
// vim: tw=120 ts=4 sw=4 et :
3  ReactiveUI/ReactiveUI.csproj
View
@@ -72,8 +72,11 @@
<Compile Include="RefcountDisposeWrapper.cs" />
<Compile Include="Reflection.cs" />
<Compile Include="ReflectionStubs.cs" />
+ <Compile Include="RoutingState.cs" />
<Compile Include="RxApp.cs" />
+ <Compile Include="RxRouting.cs" />
<Compile Include="ScheduledSubject.cs" />
+ <Compile Include="Validation.cs" />
<Compile Include="VariadicTemplates.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
3  ReactiveUI/ReactiveUI_SL5.csproj
View
@@ -130,12 +130,15 @@
<Compile Include="ReactiveObject.cs" />
<Compile Include="RefcountDisposeWrapper.cs" />
<Compile Include="Reflection.cs" />
+ <Compile Include="RoutingState.cs" />
<Compile Include="Rx-Shim\AwaitableAsyncSubject.cs" />
<Compile Include="Rx-Shim\GetAwaiter.cs" />
<Compile Include="Rx-Shim\ImmutableList.cs" />
<Compile Include="RxApp.cs" />
+ <Compile Include="RxRouting.cs" />
<Compile Include="ScheduledSubject.cs" />
<Compile Include="ThreadLocal.cs" />
+ <Compile Include="Validation.cs" />
<Compile Include="VariadicTemplates.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
3  ReactiveUI/ReactiveUI_WP7.csproj
View
@@ -141,12 +141,15 @@
<Compile Include="ReactiveObject.cs" />
<Compile Include="RefcountDisposeWrapper.cs" />
<Compile Include="Reflection.cs" />
+ <Compile Include="RoutingState.cs" />
<Compile Include="Rx-Shim\AwaitableAsyncSubject.cs" />
<Compile Include="Rx-Shim\GetAwaiter.cs" />
<Compile Include="Rx-Shim\ImmutableList.cs" />
<Compile Include="RxApp.cs" />
+ <Compile Include="RxRouting.cs" />
<Compile Include="ScheduledSubject.cs" />
<Compile Include="ThreadLocal.cs" />
+ <Compile Include="Validation.cs" />
<Compile Include="VariadicTemplates_WP7.cs">
<DependentUpon>VariadicTemplates_WP7.tt</DependentUpon>
<SubType>Code</SubType>
0  ReactiveUI.Routing/RoutingState.cs → ReactiveUI/RoutingState.cs
View
File renamed without changes
0  ReactiveUI.Routing/RxRouting.cs → ReactiveUI/RxRouting.cs
View
File renamed without changes
119 ReactiveUI.Xaml/Validation.cs → ReactiveUI/Validation.cs
View
@@ -3,10 +3,10 @@
using System.Linq;
using System.Reactive.Linq;
using System.ComponentModel;
-using System.ComponentModel.DataAnnotations;
using System.Reactive.Subjects;
using System.Reflection;
using System.Runtime.Serialization;
+using System.Collections;
namespace ReactiveUI
{
@@ -14,10 +14,11 @@ namespace ReactiveUI
///
/// </summary>
[DataContract]
- public class ReactiveValidatedObject : ReactiveObject, IDataErrorInfo
+ public class ReactiveValidatedObject : ReactiveObject, INotifyDataErrorInfo
{
/// <summary>
- ///
+ /// Initializes a new instance of the <see cref="ReactiveValidatedObject" /> class.
+ /// THis class hook up to the Changing observable to receive property changing notifications.
/// </summary>
public ReactiveValidatedObject()
{
@@ -38,58 +39,6 @@ public ReactiveValidatedObject()
});
}
- [IgnoreDataMember]
- public string Error {
- get { return null; }
- }
-
- [IgnoreDataMember]
- public string this[string columnName] {
- get {
- string ret;
- if (_validationCache.TryGetValue(columnName, out ret)) {
- return ret;
- }
-
- this.Log().Debug("Checking {0:X}.{1}...", this.GetHashCode(), columnName);
- ret = getPropertyValidationError(columnName);
- this.Log().Debug("Validation result: {0}", ret);
-
- _validationCache[columnName] = ret;
-
- _ValidationObservable.OnNext(new ObservedChange<object, bool>() {
- Sender = this, PropertyName = columnName, Value = (ret != null)
- });
- return ret;
- }
- }
-
- public bool IsObjectValid()
- {
- if (_validationCache.Count == _validatedPropertyCount.Value) {
- //return _validationCache.Values.All(x => x == null);
- foreach(var v in _validationCache.Values) {
- if (v != null) {
- return false;
- }
- }
- return true;
- }
-
- IEnumerable<string> allProps;
- lock (allValidatedProperties) {
- allProps = allValidatedProperties.Get(GetType()).Keys;
- };
-
- //return allProps.All(x => this[x] == null);
- foreach(var v in allProps) {
- if (this[v] != null) {
- return false;
- }
- }
- return true;
- }
-
protected void InvalidateValidationCache()
{
_validationCache.Clear();
@@ -138,6 +87,66 @@ string getPropertyValidationError(string propName)
return null;
}
+
+ public event EventHandler<DataErrorsChangedEventArgs> ErrorsChanged;
+
+ public IEnumerable GetErrors(string propertyName)
+ {
+ string ret;
+ if (_validationCache.TryGetValue(propertyName, out ret))
+ {
+ return ret;
+ }
+
+ this.Log().Debug("Checking {0:X}.{1}...", this.GetHashCode(), propertyName);
+ ret = getPropertyValidationError(propertyName);
+ this.Log().Debug("Validation result: {0}", ret);
+
+ _validationCache[propertyName] = ret;
+
+ _ValidationObservable.OnNext(new ObservedChange<object, bool>()
+ {
+ Sender = this,
+ PropertyName = propertyName,
+ Value = (ret != null)
+ });
+ return ret;
+ }
+
+ public bool HasErrors
+ {
+ get
+ {
+ if (_validationCache.Count == _validatedPropertyCount.Value)
+ {
+ //return _validationCache.Values.All(x => x == null);
+ foreach (var v in _validationCache.Values)
+ {
+ if (v != null)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ IEnumerable<string> allProps;
+ lock (allValidatedProperties)
+ {
+ allProps = allValidatedProperties.Get(GetType()).Keys;
+ };
+
+ //return allProps.All(x => this[x] == null);
+ foreach (var v in allProps)
+ {
+ if (this.GetErrors(v) != null)
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+ }
}
internal class PropertyExtraInfo : IComparable
Please sign in to comment.
Something went wrong with that request. Please try again.