fix: Call Bindings.Update to initialize x:Bind bindings
This commit is contained in:
Родитель
9be16a0db1
Коммит
d37521ad7a
|
@ -15,6 +15,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)\..\..\src\Uno.Extensions.Core.Generators\Uno.Extensions.Core.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
@ -155,6 +155,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.UI", ".
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI", "..\..\src\Uno.Extensions.Core.UI\Uno.Extensions.Core.WinUI.csproj", "{0706A3E8-9DB3-4344-979B-376CD04D76B9}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{B4F14C65-EC7C-4641-81A6-576BA122E8C2}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
|
@ -3218,6 +3220,62 @@ Global
|
|||
{0706A3E8-9DB3-4344-979B-376CD04D76B9}.Release|x64.Build.0 = Release|Any CPU
|
||||
{0706A3E8-9DB3-4344-979B-376CD04D76B9}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{0706A3E8-9DB3-4344-979B-376CD04D76B9}.Release|x86.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|ARM.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|ARM.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|ARM64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|x64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|x64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|x86.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.AppStore|x86.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x64.Build.0 = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -3290,6 +3348,7 @@ Global
|
|||
{349E684D-BC28-4D6E-8CA6-6646DE7FD478} = {235663AE-4E7D-4FA4-964E-012C2F143FE5}
|
||||
{BDAB734F-2622-4591-B06B-87C6EC53B282} = {F9372730-80BC-47B6-9E23-B5F69E36768F}
|
||||
{0706A3E8-9DB3-4344-979B-376CD04D76B9} = {F9372730-80BC-47B6-9E23-B5F69E36768F}
|
||||
{B4F14C65-EC7C-4641-81A6-576BA122E8C2} = {A7450AE8-53E1-4AD2-8E3A-4BF626269DC0}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {1A645832-60E5-4DA0-9EE7-69F7E34333DC}
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
"..\\..\\src\\Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.Skia.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.Wasm.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.Generators\\Uno.Extensions.Navigation.Generators.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.Toolkit\\Uno.Extensions.Navigation.Toolkit.UI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.Toolkit\\Uno.Extensions.Navigation.Toolkit.WinUI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.UI\\Uno.Extensions.Navigation.UI.csproj",
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
"Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.Skia.csproj",
|
||||
"Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.Wasm.csproj",
|
||||
"Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.csproj",
|
||||
"Uno.Extensions.Navigation.Generators\\Uno.Extensions.Navigation.Generators.csproj",
|
||||
"Uno.Extensions.Navigation.Toolkit\\Uno.Extensions.Navigation.Toolkit.UI.csproj",
|
||||
"Uno.Extensions.Navigation.Toolkit\\Uno.Extensions.Navigation.Toolkit.WinUI.csproj",
|
||||
"Uno.Extensions.Navigation.UI.Markup\\Uno.Extensions.Navigation.WinUI.Markup.csproj",
|
||||
|
@ -62,4 +63,4 @@
|
|||
"Uno.Extensions\\Uno.Extensions.csproj"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,68 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Uno.Extensions.Generators;
|
||||
|
||||
namespace Uno.Extensions.Navigation.Generators;
|
||||
|
||||
internal class ForceBindingsUpdateGenTool_1 : ICodeGenTool
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public string Version => "1";
|
||||
|
||||
private readonly ForceBindingsUpdateGenerationContext _ctx;
|
||||
private readonly IAssemblySymbol _assembly;
|
||||
|
||||
public ForceBindingsUpdateGenTool_1(ForceBindingsUpdateGenerationContext ctx)
|
||||
{
|
||||
_ctx = ctx;
|
||||
_assembly = ctx.Context.Compilation.Assembly;
|
||||
}
|
||||
|
||||
private bool IsSupported(INamedTypeSymbol? type)
|
||||
=> type is not null
|
||||
&& (_ctx.IsGenerationEnabled(type)
|
||||
?? (
|
||||
type.Is(_ctx.Page) &&
|
||||
type.IsPartial()
|
||||
))
|
||||
&& _ctx.ContainsXBind(type);
|
||||
|
||||
public IEnumerable<(string fileName, string code)> Generate()
|
||||
{
|
||||
var pages = from module in _assembly.Modules
|
||||
from type in module.GetNamespaceTypes()
|
||||
where
|
||||
type is not null &&
|
||||
IsSupported(type)
|
||||
select type;
|
||||
|
||||
foreach (var page in pages)
|
||||
{
|
||||
yield return (page.ToDisplayString(), Generate(page));
|
||||
}
|
||||
}
|
||||
|
||||
private string Generate(INamedTypeSymbol model)
|
||||
{
|
||||
var className = model.Name;
|
||||
|
||||
var updateInterface = _ctx.ForceBindingsUpdateInterface.ToDisplayString();
|
||||
var fileCode = this.AsPartialOf(
|
||||
model,
|
||||
attributes: default,
|
||||
bases: updateInterface,
|
||||
code: $@"
|
||||
ValueTask IForceBindingsUpdate.ForceBindingsUpdateAsync()
|
||||
{{
|
||||
this.Bindings.Update();
|
||||
return ValueTask.CompletedTask;
|
||||
}}
|
||||
");
|
||||
|
||||
return fileCode.Align(0);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,87 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.Immutable;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Uno.Extensions.Generators;
|
||||
using Uno.Extensions.Navigation.UI.Controls;
|
||||
|
||||
namespace Uno.Extensions.Navigation.Generators;
|
||||
|
||||
internal record ForceBindingsUpdateGenerationContext(
|
||||
GeneratorExecutionContext Context,
|
||||
|
||||
// Core types
|
||||
[ContextType("Uno.Extensions.Navigation.IForceBindingsUpdate")] INamedTypeSymbol ForceBindingsUpdateInterface,
|
||||
|
||||
// Attributes
|
||||
[ContextType(typeof(ForceUpdateAttribute))] INamedTypeSymbol UpdateAttribute,
|
||||
|
||||
// General stuff types
|
||||
[ContextType("Microsoft.UI.Xaml.Controls.Page")] INamedTypeSymbol Page)
|
||||
{
|
||||
public bool IsGenerationNotDisable(ISymbol symbol)
|
||||
=> IsGenerationEnabled(symbol) ?? true;
|
||||
|
||||
public bool? IsGenerationEnabled(ISymbol symbol)
|
||||
=> symbol.FindAttributeValue<bool>(UpdateAttribute, nameof(ForceUpdateAttribute.IsEnabled), 0) is { isDefined: true } attribute
|
||||
? attribute.value ?? true
|
||||
: null;
|
||||
|
||||
private IImmutableSet<string>? _XBindFiles;
|
||||
private static Regex ClassRegEx = new Regex("x:Class=\"([\\w.]+)\"");
|
||||
private static string xBind = "{x:Bind ";
|
||||
|
||||
private IImmutableSet<string> XBindFiles
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_XBindFiles is null)
|
||||
{
|
||||
var files = ImmutableHashSet.CreateBuilder<string>();
|
||||
foreach (var file in Context.AdditionalFiles)
|
||||
{
|
||||
using (var reader = new StreamReader(file.Path))
|
||||
{
|
||||
string? className = null;
|
||||
var hasXBind = false;
|
||||
while (
|
||||
!reader.EndOfStream &&
|
||||
(className is null ||
|
||||
!hasXBind))
|
||||
{
|
||||
var txt = reader.ReadLine();
|
||||
if(className is null)
|
||||
{
|
||||
var classNameMatch = ClassRegEx.Match(txt);
|
||||
if (classNameMatch.Success &&
|
||||
classNameMatch.Groups.Count > 1)
|
||||
{
|
||||
className = classNameMatch.Groups[1].Value;
|
||||
}
|
||||
}
|
||||
if (txt is not null &&
|
||||
txt.Contains(xBind))
|
||||
{
|
||||
hasXBind = true;
|
||||
}
|
||||
}
|
||||
if(className is not null && hasXBind)
|
||||
{
|
||||
files.Add(className);
|
||||
}
|
||||
}
|
||||
}
|
||||
_XBindFiles = files.ToImmutableHashSet();
|
||||
}
|
||||
return _XBindFiles;
|
||||
}
|
||||
}
|
||||
|
||||
public bool ContainsXBind(INamedTypeSymbol symbol)
|
||||
{
|
||||
var name = symbol.ToDisplayString();
|
||||
return XBindFiles.Contains(name);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,42 @@
|
|||
using System;
|
||||
using System.Diagnostics;
|
||||
using Microsoft.CodeAnalysis;
|
||||
using Uno.Extensions.Generators;
|
||||
|
||||
namespace Uno.Extensions.Navigation.Generators;
|
||||
|
||||
/// <summary>
|
||||
/// A generator that generates bindable VM for the reactive framework
|
||||
/// </summary>
|
||||
[Generator]
|
||||
public partial class ForceBindingsUpdateGenerator : ISourceGenerator
|
||||
{
|
||||
/// <inheritdoc />
|
||||
public void Initialize(GeneratorInitializationContext context) { }
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Execute(GeneratorExecutionContext context)
|
||||
{
|
||||
#if DEBUGGING_GENERATOR
|
||||
var process = Process.GetCurrentProcess().ProcessName;
|
||||
if (process.IndexOf("VBCSCompiler", StringComparison.OrdinalIgnoreCase) is not -1
|
||||
|| process.IndexOf("csc", StringComparison.OrdinalIgnoreCase) is not -1)
|
||||
{
|
||||
Debugger.Launch();
|
||||
}
|
||||
#endif
|
||||
|
||||
if (GenerationContext.TryGet<ForceBindingsUpdateGenerationContext>(context, out var error) is { } bindableContext)
|
||||
{
|
||||
foreach (var generated in new ForceBindingsUpdateGenTool_1(bindableContext).Generate())
|
||||
{
|
||||
context.AddSource(PathHelper.SanitizeFileName(generated.fileName) + ".g.cs", generated.code);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new InvalidOperationException(error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<IsPackable>false</IsPackable>
|
||||
|
||||
<!--
|
||||
Defines that this project output is a tool of the given package ID,
|
||||
so nuget override will copy it in the 'analyzers' directory of that package instead of the 'lib' of the current package folder.
|
||||
-->
|
||||
<ToolOfPackage>Uno.Extensions.Navigation</ToolOfPackage>
|
||||
|
||||
<NoWarn>$(NoWarn);RS2008</NoWarn> <!-- RS2008: Enable analyzer release tracking for the analyzer project -->
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Uno.Roslyn" PrivateAssets="All" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" PrivateAssets="All" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="..\Uno.Extensions.Core\_Compat\**\*.cs" Link="_Compat\%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
<Compile Include="..\Uno.Extensions.Core.Generators\Common\**\*.cs" Link="Common\%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
<Compile Include="..\Uno.Extensions.Navigation\**\*Attribute.cs" Link="Attributes\%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
<Compile Include="..\Uno.Extensions.Navigation.UI\**\*Attribute.cs" Link="Attributes\%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -0,0 +1,24 @@
|
|||
using System;
|
||||
namespace Uno.Extensions.Navigation.UI.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// Flags the default constructor to use to create an instance of a record that is being de-normalized for bindings.
|
||||
/// </summary>
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public sealed class ForceUpdateAttribute : Attribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets a value indicating whether the method should be generated or not.
|
||||
/// </summary>
|
||||
public bool IsEnabled { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Configure generation the force update method.
|
||||
/// </summary>
|
||||
/// <param name="isEnabled">Indicates if the method should be generated or not.</param>
|
||||
public ForceUpdateAttribute(bool isEnabled = true)
|
||||
{
|
||||
IsEnabled = isEnabled;
|
||||
}
|
||||
|
||||
}
|
|
@ -81,7 +81,7 @@ public static class FrameworkElementExtensions
|
|||
Windows.ApplicationModel.Core.CoreApplication.MainView.DispatcherQueue;
|
||||
#endif
|
||||
|
||||
public static async Task<bool> EnsureLoaded(this FrameworkElement? element, int? timeoutInSeconds = default)
|
||||
internal static async Task<bool> EnsureLoaded(this FrameworkElement? element, int? timeoutInSeconds = default)
|
||||
{
|
||||
if (element is null)
|
||||
{
|
||||
|
@ -192,7 +192,7 @@ public static class FrameworkElementExtensions
|
|||
return completion.Task;
|
||||
}
|
||||
|
||||
public static void InjectServicesAndSetDataContext(
|
||||
internal static async ValueTask InjectServicesAndSetDataContextAsync(
|
||||
this FrameworkElement view,
|
||||
IServiceProvider services,
|
||||
INavigator navigation,
|
||||
|
@ -204,6 +204,10 @@ public static class FrameworkElementExtensions
|
|||
view.DataContext != viewModel)
|
||||
{
|
||||
view.DataContext = viewModel;
|
||||
if(view is IForceBindingsUpdate updatableView)
|
||||
{
|
||||
await updatableView.ForceBindingsUpdateAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ public class ContentDialogNavigator : DialogNavigator
|
|||
|
||||
dialog.SetInstance(Region);
|
||||
|
||||
dialog.InjectServicesAndSetDataContext(services, navigation, viewModel);
|
||||
await dialog.InjectServicesAndSetDataContextAsync(services, navigation, viewModel);
|
||||
|
||||
var showTask = dialog.ShowAsync();
|
||||
_ = showTask.AsTask()
|
||||
|
|
|
@ -88,7 +88,7 @@ public abstract class ControlNavigator<TControl> : ControlNavigator
|
|||
viewModel = await CreateViewModel(services, request, route, mapping);
|
||||
}
|
||||
|
||||
view.InjectServicesAndSetDataContext(services, navigator, viewModel);
|
||||
await view.InjectServicesAndSetDataContextAsync(services, navigator, viewModel);
|
||||
|
||||
return viewModel;
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ public class FlyoutNavigator : ControlNavigator
|
|||
{
|
||||
if (!injectedFlyout)
|
||||
{
|
||||
flyoutElement.InjectServicesAndSetDataContext(services, navigation, viewModel);
|
||||
await flyoutElement.InjectServicesAndSetDataContextAsync(services, navigation, viewModel);
|
||||
}
|
||||
|
||||
flyoutElement.SetInstance(Region);
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
namespace Uno.Extensions.Navigation;
|
||||
|
||||
/// <summary>
|
||||
/// Interface that defines the ForceBindingsUpdate method which will
|
||||
/// be invoked when a data context has been set on a view.
|
||||
/// </summary>
|
||||
public interface IForceBindingsUpdate
|
||||
{
|
||||
/// <summary>
|
||||
/// Method to be implemented by a type so that it can be notified
|
||||
/// when the data context has been set. Useful so that Bindings.Update
|
||||
/// can be invoked by navigation after setting a datacontext on a page
|
||||
/// </summary>
|
||||
/// <returns>awaitable ValueTask</returns>
|
||||
ValueTask ForceBindingsUpdateAsync();
|
||||
}
|
|
@ -16,6 +16,10 @@
|
|||
<ProjectReference Include="..\Uno.Extensions.Hosting\Uno.Extensions.Hosting.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<GeneratorProjectReference Include="..\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging" />
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
<Project>
|
||||
<ItemGroup Condition=" '$(ImplicitUsings)' == 'true' OR '$(ImplicitUsings)' == 'enable' ">
|
||||
<Using Include="Uno.Extensions.Navigation" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
<ItemGroup>
|
||||
<AdditionalFiles Include="@(Page)" />
|
||||
</ItemGroup>
|
||||
<ItemGroup Condition=" '$(ImplicitUsings)' == 'true' OR '$(ImplicitUsings)' == 'enable' ">
|
||||
<Using Include="Uno.Extensions.Navigation" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
|
|
@ -188,6 +188,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.UI", "U
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI", "Uno.Extensions.Core.UI\Uno.Extensions.Core.WinUI.csproj", "{FBD4CA61-6709-40BA-9E64-C34672A27568}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{2F076ADB-04CE-4C75-A63E-90A160BB4C30}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
@ -1050,6 +1052,22 @@ Global
|
|||
{FBD4CA61-6709-40BA-9E64-C34672A27568}.Release|x64.Build.0 = Release|Any CPU
|
||||
{FBD4CA61-6709-40BA-9E64-C34672A27568}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{FBD4CA61-6709-40BA-9E64-C34672A27568}.Release|x86.Build.0 = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|arm64.ActiveCfg = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|arm64.Build.0 = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|arm64.ActiveCfg = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|arm64.Build.0 = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x64.Build.0 = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -1119,6 +1137,7 @@ Global
|
|||
{2FADB746-5211-44DB-8F2B-5B4C9617290B} = {069DD21F-46E5-4379-ADF6-81AE5FCD54B5}
|
||||
{F0668EB6-9C39-42A9-BE4A-AF57FD7E9A1D} = {B1477A2C-41F4-4970-8640-5CCF8DA3EDFD}
|
||||
{EEF81643-E541-4298-92FF-F0AF8433C44B} = {B1477A2C-41F4-4970-8640-5CCF8DA3EDFD}
|
||||
{2F076ADB-04CE-4C75-A63E-90A160BB4C30} = {2B4C9E46-EA70-4ADE-B301-E2BB8CC31365}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {6E7B035D-9A64-4D95-89AA-9D4653F17C42}
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
"..\\..\\src\\Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.Wasm.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Logging\\Uno.Extensions.Logging.WinUI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.Toolkit\\Uno.Extensions.Navigation.Toolkit.WinUI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.Generators\\Uno.Extensions.Navigation.Generators.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation.UI\\Uno.Extensions.Navigation.WinUI.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Navigation\\Uno.Extensions.Navigation.csproj",
|
||||
"..\\..\\src\\Uno.Extensions.Reactive.Generator\\Uno.Extensions.Reactive.Generator.csproj",
|
||||
|
@ -47,7 +48,6 @@
|
|||
"TestHarness.Skia.WPF\\TestHarness.Skia.WPF.csproj",
|
||||
"TestHarness.UITest\\TestHarness.UITest.csproj",
|
||||
"TestHarness.Wasm\\TestHarness.Wasm.csproj",
|
||||
"TestHarness.Windows.Package\\TestHarness.Windows.Package.wapproj",
|
||||
"TestHarness.Windows\\TestHarness.Windows.csproj"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Configuration\Uno.Extensions.Configuration.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Localization.UI\Uno.Extensions.Localization.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core\Uno.Extensions.Core.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core.Generators\Uno.Extensions.Core.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting.UI\Uno.Extensions.Hosting.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting\Uno.Extensions.Hosting.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Logging.Serilog\Uno.Extensions.Logging.Serilog.csproj" />
|
||||
|
@ -54,8 +55,10 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Toolkit\Uno.Extensions.Navigation.Toolkit.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.UI\Uno.Extensions.Navigation.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation\Uno.Extensions.Navigation.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.UI\Uno.Extensions.Reactive.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive\Uno.Extensions.Reactive.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Http\Uno.Extensions.Serialization.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Refit\Uno.Extensions.Serialization.Refit.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization\Uno.Extensions.Serialization.csproj" />
|
||||
|
@ -118,6 +121,6 @@
|
|||
</PropertyGroup>
|
||||
|
||||
<Import Project="..\..\..\src\Uno.Extensions.Core.Generators\buildTransitive\Uno.Extensions.Core.props" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" Condition="Exists('..\TestHarness.Shared\TestHarness.Shared.projitems')" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition />
|
||||
</Grid.RowDefinitions>
|
||||
<utu:NavigationBar Content="AdHoc"
|
||||
<utu:NavigationBar Content="{x:Bind ViewModel.Title}"
|
||||
AutomationProperties.AutomationId="AdHocOnePage" />
|
||||
<StackPanel Grid.Row="1">
|
||||
<Button Content="One"
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
|
||||
namespace TestHarness.Ext.AdHoc;
|
||||
|
||||
// Uncomment this and the NavigationBar Title won't display
|
||||
//[ForceUpdate(false)]
|
||||
[ReactiveBindable(false)]
|
||||
public sealed partial class AdHocOnePage : Page
|
||||
{
|
||||
public AdHocOneViewModel? ViewModel => DataContext as AdHocOneViewModel;
|
||||
|
|
|
@ -7,6 +7,7 @@ namespace TestHarness.Ext.AdHoc;
|
|||
[ReactiveBindable(false)]
|
||||
public partial class AdHocOneViewModel : ObservableObject
|
||||
{
|
||||
public string Title => "AdHocOneViewModel - From ViewModel";
|
||||
private readonly IDispatcher _dispatcher;
|
||||
private readonly INavigator _navigator;
|
||||
private readonly ISerializer<AdHocWidget> _widgetSerializer;
|
||||
|
@ -38,6 +39,15 @@ public partial class AdHocOneViewModel : ObservableObject
|
|||
ISerializer serializer,
|
||||
AdHocNeedsADispatcherService needsADispatcher)
|
||||
{
|
||||
#if DEBUG
|
||||
// Uncomment this for an arbitrary delay when creating this constructor
|
||||
// Used for testing that Bindings.Update is called when view model is
|
||||
// set as DataContext -> x:Bind bindings should be updated
|
||||
//for (int i = 0; i < 3000; i++)
|
||||
//{
|
||||
// Debug.WriteLine(i);
|
||||
//}
|
||||
#endif
|
||||
_dispatcher = dispatcher;
|
||||
_navigator = navigator;
|
||||
_widgetSerializer = widgetSerializer;
|
||||
|
@ -47,6 +57,7 @@ public partial class AdHocOneViewModel : ObservableObject
|
|||
_dataService = dataService;
|
||||
_serializer = serializer;
|
||||
_needsADispatcher = needsADispatcher;
|
||||
|
||||
}
|
||||
|
||||
public async Task LongRunning()
|
||||
|
|
|
@ -29,6 +29,7 @@ global using Uno.Extensions.Localization;
|
|||
global using Uno.Extensions.Logging;
|
||||
global using Uno.Extensions.Navigation;
|
||||
global using Uno.Extensions.Navigation.Regions;
|
||||
global using Uno.Extensions.Navigation.UI.Controls;
|
||||
global using Uno.Extensions.Reactive;
|
||||
global using Uno.Extensions.Serialization;
|
||||
global using Uno.Extensions.Validation;
|
||||
|
|
|
@ -45,6 +45,7 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Configuration\Uno.Extensions.Configuration.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Localization.UI\Uno.Extensions.Localization.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core\Uno.Extensions.Core.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core.Generators\Uno.Extensions.Core.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting.UI\Uno.Extensions.Hosting.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting\Uno.Extensions.Hosting.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Logging.Serilog\Uno.Extensions.Logging.Serilog.csproj" />
|
||||
|
@ -52,8 +53,10 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Toolkit\Uno.Extensions.Navigation.Toolkit.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.UI\Uno.Extensions.Navigation.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation\Uno.Extensions.Navigation.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.UI\Uno.Extensions.Reactive.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive\Uno.Extensions.Reactive.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Http\Uno.Extensions.Serialization.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Refit\Uno.Extensions.Serialization.Refit.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization\Uno.Extensions.Serialization.csproj" />
|
||||
|
@ -64,6 +67,6 @@
|
|||
<ProjectReference Include="..\TestHarness.Core\TestHarness.Core.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\..\..\src\Uno.Extensions.Core.Generators\buildTransitive\Uno.Extensions.Core.props" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" Condition="Exists('..\TestHarness.Shared\TestHarness.Shared.projitems')" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -39,6 +39,7 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Configuration\Uno.Extensions.Configuration.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Localization.UI\Uno.Extensions.Localization.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core\Uno.Extensions.Core.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Core.Generators\Uno.Extensions.Core.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting.UI\Uno.Extensions.Hosting.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Hosting\Uno.Extensions.Hosting.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Logging.Serilog\Uno.Extensions.Logging.Serilog.csproj" />
|
||||
|
@ -46,8 +47,10 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Toolkit\Uno.Extensions.Navigation.Toolkit.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.UI\Uno.Extensions.Navigation.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation\Uno.Extensions.Navigation.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.UI\Uno.Extensions.Reactive.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive\Uno.Extensions.Reactive.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Http\Uno.Extensions.Serialization.Http.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization.Refit\Uno.Extensions.Serialization.Refit.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Serialization\Uno.Extensions.Serialization.csproj" />
|
||||
|
@ -58,5 +61,5 @@
|
|||
<ProjectReference Include="..\TestHarness.Core\TestHarness.Core.csproj" />
|
||||
</ItemGroup>
|
||||
<Import Project="..\..\..\src\Uno.Extensions.Core.Generators\buildTransitive\Uno.Extensions.Core.props" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" Condition="Exists('..\TestHarness.Shared\TestHarness.Shared.projitems')" />
|
||||
</Project>
|
||||
|
|
|
@ -85,6 +85,7 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Toolkit\Uno.Extensions.Navigation.Toolkit.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.UI\Uno.Extensions.Navigation.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation\Uno.Extensions.Navigation.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.UI\Uno.Extensions.Reactive.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive\Uno.Extensions.Reactive.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
|
|
|
@ -77,6 +77,7 @@
|
|||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Toolkit\Uno.Extensions.Navigation.Toolkit.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.UI\Uno.Extensions.Navigation.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation\Uno.Extensions.Navigation.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.UI\Uno.Extensions.Reactive.WinUI.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive\Uno.Extensions.Reactive.csproj" />
|
||||
<ProjectReference Include="..\..\..\src\Uno.Extensions.Reactive.Generator\Uno.Extensions.Reactive.Generator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
||||
|
@ -91,5 +92,5 @@
|
|||
</ItemGroup>
|
||||
|
||||
<Import Project="..\..\..\src\Uno.Extensions.Core.Generators\buildTransitive\Uno.Extensions.Core.props" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" />
|
||||
<Import Project="..\TestHarness.Shared\TestHarness.Shared.projitems" Label="Shared" Condition="Exists('..\TestHarness.Shared\TestHarness.Shared.projitems')" />
|
||||
</Project>
|
||||
|
|
|
@ -206,6 +206,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.UI", ".
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Core.WinUI", "..\..\src\Uno.Extensions.Core.UI\Uno.Extensions.Core.WinUI.csproj", "{99D01288-4673-43AB-88A5-B9D42ABA7F81}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.Extensions.Navigation.Generators", "..\..\src\Uno.Extensions.Navigation.Generators\Uno.Extensions.Navigation.Generators.csproj", "{87A72917-4D00-4C93-A792-1A00DFD380E6}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Ad-Hoc|Any CPU = Ad-Hoc|Any CPU
|
||||
|
@ -4325,6 +4327,62 @@ Global
|
|||
{99D01288-4673-43AB-88A5-B9D42ABA7F81}.Release|x64.Build.0 = Release|Any CPU
|
||||
{99D01288-4673-43AB-88A5-B9D42ABA7F81}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{99D01288-4673-43AB-88A5-B9D42ABA7F81}.Release|x86.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|ARM64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|x64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Ad-Hoc|x86.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|Any CPU.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|ARM.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|ARM.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|ARM64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|iPhone.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|x64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|x64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|x86.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.AppStore|x86.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|ARM.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|ARM.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|ARM64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|ARM64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|iPhone.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|iPhone.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|x64.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Debug|x86.Build.0 = Debug|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|ARM.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|ARM.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|ARM64.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|ARM64.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|iPhone.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|iPhone.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x64.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x64.Build.0 = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x86.ActiveCfg = Release|Any CPU
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6}.Release|x86.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
@ -4414,6 +4472,7 @@ Global
|
|||
{DC16C151-2F93-47B8-8B67-906064B49B66} = {EAC29F11-6841-4732-88AB-BE9DC4E45D84}
|
||||
{EB61C02F-B3DC-4297-9BFA-A676BE1BC652} = {3DE9532E-61E4-4B25-B0BD-B580BC63F6BD}
|
||||
{99D01288-4673-43AB-88A5-B9D42ABA7F81} = {3DE9532E-61E4-4B25-B0BD-B580BC63F6BD}
|
||||
{87A72917-4D00-4C93-A792-1A00DFD380E6} = {1380679E-0E34-4994-BD7F-1C848B11E761}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {C7433AE2-B1A0-4C1A-887E-5CAA7AAF67A6}
|
||||
|
|
Загрузка…
Ссылка в новой задаче