Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 21 additions & 1 deletion src/.vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": "Uno Platform Desktop Debug",
"name": "Uno Platform Desktop Debug (DevTKSS.Uno.SampleApps.MvuxGallery)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build-desktop",
Expand All @@ -24,5 +24,25 @@
"console": "internalConsole",
"stopAtEntry": false
},
{
// Use IntelliSense to find out which attributes exist for C# debugging
// Use hover for the description of the existing attributes
// For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
"name": "Uno Platform Desktop Debug (MvuxListApp)",
"type": "coreclr",
"request": "launch",
"preLaunchTask": "build-desktop",
// If you have changed target frameworks, make sure to update the program path.
"program": "${workspaceFolder}/MvuxListApp/bin/Debug/net9.0-desktop/DevTKSS.Uno.MvuxListApp.dll",
"args": [],
"launchSettingsProfile": "DevTKSS.Uno.MvuxListApp (Desktop)",
"env": {
"DOTNET_MODIFIABLE_ASSEMBLIES": "debug"
},
"cwd": "${workspaceFolder}/MvuxListApp",
// For more information about the 'console' field, see https://aka.ms/VSCode-CS-LaunchJson-Console
"console": "internalConsole",
"stopAtEntry": false
},
]
}
30 changes: 28 additions & 2 deletions src/.vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"version": "2.0.0",
"tasks": [
{
"label": "build-desktop",
"label": "build-desktop MvuxGallery",
"command": "dotnet",
"type": "process",
"args": [
Expand All @@ -15,7 +15,7 @@
"problemMatcher": "$msCompile"
},
{
"label": "publish-desktop",
"label": "publish-desktop MvuxGallery",
"command": "dotnet",
"type": "process",
"args": [
Expand All @@ -26,6 +26,32 @@
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "build-desktop MvuxListApp",
"command": "dotnet",
"type": "process",
"args": [
"build",
"${workspaceFolder}/MvuxListApp/MvuxListApp.csproj",
Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The project path references 'MvuxListApp.csproj' but the actual project file is 'DevTKSS.Uno.MvuxListApp.csproj'. This will cause the build task to fail.

Copilot uses AI. Check for mistakes.

"/property:GenerateFullPaths=true",
"/property:TargetFramework=net9.0-desktop",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
},
{
"label": "publish-desktop MvuxListApp",
"command": "dotnet",
"type": "process",
"args": [
"publish",
"${workspaceFolder}/MvuxListApp/MvuxListApp.csproj",
Copy link

Copilot AI Sep 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The project path references 'MvuxListApp.csproj' but the actual project file is 'DevTKSS.Uno.MvuxListApp.csproj'. This will cause the publish task to fail.

Copilot uses AI. Check for mistakes.

"/property:GenerateFullPaths=true",
"/property:TargetFramework=net9.0-desktop",
"/consoleloggerparameters:NoSummary"
],
"problemMatcher": "$msCompile"
}
]
}
3 changes: 2 additions & 1 deletion src/DevTKSS.Uno.SampleApps-Tutorials.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
"solution": {
"path": "DevTKSS.Uno.Samples.sln",
"projects": [
"DevTKSS.Uno.XamlNavigationApp-1\\DevTKSS.Uno.XamlNavigationApp.csproj"
"DevTKSS.Uno.XamlNavigationApp-1\\DevTKSS.Uno.XamlNavigationApp.csproj",
"MvuxListApp\\DevTKSS.Uno.MvuxListApp.csproj"
]
}
}
39 changes: 31 additions & 8 deletions src/DevTKSS.Uno.Samples.sln
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ VisualStudioVersion = 17.12.35521.163
MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{E743ECB2-9BD7-4FBF-B90B-AA75D48758DB}"
ProjectSection(SolutionItems) = preProject
..\.editorconfig = ..\.editorconfig
.gitignore = .gitignore
Directory.Build.props = Directory.Build.props
Directory.Build.targets = Directory.Build.targets
Expand All @@ -19,6 +20,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevTKSS.Uno.XamlNavigationA
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevTKSS.Extensions.Uno.Storage", "DevTKSS.Extensions.Uno.Storage\DevTKSS.Extensions.Uno.Storage.csproj", "{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DevTKSS.Uno.MvuxListApp", "MvuxListApp\DevTKSS.Uno.MvuxListApp.csproj", "{0E9C14E0-567C-0677-1002-D73C19C0F098}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Expand Down Expand Up @@ -49,14 +52,34 @@ Global
{AE75474D-B5FC-3152-7897-AB178447428A}.Debug|x86.Build.0 = Debug|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|Any CPU.Build.0 = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|Any CPU.Build.0 = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|x64.ActiveCfg = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|x64.Build.0 = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|x86.ActiveCfg = Release|Any CPU
{88A95F19-AAAB-6B45-A5D7-8BABCE37F25C}.Release|x86.Build.0 = Release|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|x64.ActiveCfg = Release|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|x64.Build.0 = Release|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|x86.ActiveCfg = Release|Any CPU
{AE75474D-B5FC-3152-7897-AB178447428A}.Release|x86.Build.0 = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|x64.ActiveCfg = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|x64.Build.0 = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|x86.ActiveCfg = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Debug|x86.Build.0 = Debug|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|Any CPU.Build.0 = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|x64.ActiveCfg = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|x64.Build.0 = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|x86.ActiveCfg = Release|Any CPU
{0C51BF5A-7C98-4BE2-3ED6-A5796C06AB8E}.Release|x86.Build.0 = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|x64.ActiveCfg = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|x64.Build.0 = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|x86.ActiveCfg = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Debug|x86.Build.0 = Debug|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|Any CPU.Build.0 = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|x64.ActiveCfg = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|x64.Build.0 = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|x86.ActiveCfg = Release|Any CPU
{0E9C14E0-567C-0677-1002-D73C19C0F098}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
29 changes: 29 additions & 0 deletions src/MvuxListApp/App.xaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<Application x:Class="DevTKSS.Uno.MvuxListApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:utum="using:Uno.Toolkit.UI.Material">

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- Load WinUI resources -->
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<utum:MaterialToolkitTheme
ColorOverrideSource="ms-appx:///Styles/ColorPaletteOverride.xaml">
<!-- NOTE: You can override the default Roboto font by providing your font assets here. -->
<!-- <utum:MaterialToolkitTheme.FontOverrideDictionary>
<ResourceDictionary>
<FontFamily x:Key="MaterialLightFontFamily">ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Light.ttf#Roboto</FontFamily>
<FontFamily x:Key="MaterialMediumFontFamily">ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Medium.ttf#Roboto</FontFamily>
<FontFamily x:Key="MaterialRegularFontFamily">ms-appx:///Uno.Fonts.Roboto/Fonts/Roboto-Regular.ttf#Roboto</FontFamily>
</ResourceDictionary>
</utum:MaterialToolkitTheme.FontOverrideDictionary> -->
</utum:MaterialToolkitTheme>
</ResourceDictionary.MergedDictionaries>

<!-- Add resources here -->

</ResourceDictionary>
</Application.Resources>

</Application>
100 changes: 100 additions & 0 deletions src/MvuxListApp/App.xaml.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
using DevTKSS.Uno.MvuxListApp.Models;
using DevTKSS.Uno.MvuxListApp.Presentation;
using Uno.Resizetizer;

namespace DevTKSS.Uno.MvuxListApp;
public partial class App : Application
{
/// <summary>
/// Initializes the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
public App()
{
this.InitializeComponent();
}

protected Window? MainWindow { get; private set; }
protected IHost? Host { get; private set; }

protected async override void OnLaunched(LaunchActivatedEventArgs args)
{
var builder = this.CreateBuilder(args)
// Add navigation support for toolkit controls such as TabBar and NavigationView
.UseToolkitNavigation()
.Configure(host => host
#if DEBUG
// Switch to Development environment when running in DEBUG
.UseEnvironment(Environments.Development)
#endif
.UseLogging(configure: (context, logBuilder) =>
{
// Configure log levels for different categories of logging
logBuilder
.SetMinimumLevel(
context.HostingEnvironment.IsDevelopment() ?
LogLevel.Information :
LogLevel.Warning)

// Default filters for core Uno Platform namespaces
.CoreLogLevel(LogLevel.Warning);

// Uno Platform namespace filter groups
// Uncomment individual methods to see more detailed logging
//// Generic Xaml events
//logBuilder.XamlLogLevel(LogLevel.Debug);
//// Layout specific messages
//logBuilder.XamlLayoutLogLevel(LogLevel.Debug);
//// Storage messages
//logBuilder.StorageLogLevel(LogLevel.Debug);
//// Binding related messages
//logBuilder.XamlBindingLogLevel(LogLevel.Debug);
//// Binder memory references tracking
//logBuilder.BinderMemoryReferenceLogLevel(LogLevel.Debug);
//// DevServer and HotReload related
//logBuilder.HotReloadCoreLogLevel(LogLevel.Information);
//// Debug JS interop
//logBuilder.WebAssemblyLogLevel(LogLevel.Debug);

}, enableUnoLogging: true)
.UseConfiguration(configure: configBuilder =>
configBuilder
.EmbeddedSource<App>()
.Section<AppConfig>()
)
.ConfigureServices((context, services) =>
{
// TODO: Register your services
//services.AddSingleton<IMyService, MyService>();
})
.UseNavigation(ReactiveViewModelMappings.ViewModelMappings, RegisterRoutes)
);
MainWindow = builder.Window;

#if DEBUG
MainWindow.UseStudio();
#endif
MainWindow.SetWindowIcon();

Host = await builder.NavigateAsync<Shell>();
}

private static void RegisterRoutes(IViewRegistry views, IRouteRegistry routes)
{
views.Register(
new ViewMap(ViewModel: typeof(ShellModel)),
new ViewMap<MainPage, MainModel>(),
new DataViewMap<SecondPage, SecondModel, Entity>()
);

routes.Register(
new RouteMap("", View: views.FindByViewModel<ShellModel>(),
Nested:
[
new ("Main", View: views.FindByViewModel<MainModel>(), IsDefault:true),
new ("Second", View: views.FindByViewModel<SecondModel>()),
]
)
);
}
}
42 changes: 42 additions & 0 deletions src/MvuxListApp/Assets/Icons/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading