From 3f8e818b58127a2fad66ed67032344f553632c38 Mon Sep 17 00:00:00 2001
From: 魏曹先生 <1992414357@qq.com>
Date: Wed, 7 Jan 2026 19:30:57 +0800
Subject: Add Avalonia Project
---
JVDesktop/App.axaml | 4 ++--
JVDesktop/App.axaml.cs | 4 ++--
JVDesktop/JVDesktop.csproj | 2 +-
JVDesktop/ViewLocator.cs | 5 ++---
JVDesktop/ViewModels/MainWindowViewModel.cs | 15 ++++++++++++---
JVDesktop/Views/MainWindow.axaml | 5 ++++-
6 files changed, 23 insertions(+), 12 deletions(-)
(limited to 'JVDesktop')
diff --git a/JVDesktop/App.axaml b/JVDesktop/App.axaml
index 24e82f2..4d268d0 100644
--- a/JVDesktop/App.axaml
+++ b/JVDesktop/App.axaml
@@ -8,8 +8,8 @@
-
+
-
\ No newline at end of file
+
diff --git a/JVDesktop/App.axaml.cs b/JVDesktop/App.axaml.cs
index b1bc4c0..4c26724 100644
--- a/JVDesktop/App.axaml.cs
+++ b/JVDesktop/App.axaml.cs
@@ -20,7 +20,7 @@ public partial class App : Application
{
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
- // Avoid duplicate validations from both Avalonia and the CommunityToolkit.
+ // Avoid duplicate validations from both Avalonia and the CommunityToolkit.
// More info: https://docs.avaloniaui.net/docs/guides/development-guides/data-validation#manage-validationplugins
DisableAvaloniaDataAnnotationValidation();
desktop.MainWindow = new MainWindow
@@ -44,4 +44,4 @@ public partial class App : Application
BindingPlugins.DataValidators.Remove(plugin);
}
}
-}
\ No newline at end of file
+}
diff --git a/JVDesktop/JVDesktop.csproj b/JVDesktop/JVDesktop.csproj
index 5ba2c97..e103899 100644
--- a/JVDesktop/JVDesktop.csproj
+++ b/JVDesktop/JVDesktop.csproj
@@ -1,7 +1,7 @@
WinExe
- net9.0
+ net8.0
enable
true
app.manifest
diff --git a/JVDesktop/ViewLocator.cs b/JVDesktop/ViewLocator.cs
index f289d15..6015998 100644
--- a/JVDesktop/ViewLocator.cs
+++ b/JVDesktop/ViewLocator.cs
@@ -7,12 +7,11 @@ namespace JVDesktop;
public class ViewLocator : IDataTemplate
{
-
public Control? Build(object? param)
{
if (param is null)
return null;
-
+
var name = param.GetType().FullName!.Replace("ViewModel", "View", StringComparison.Ordinal);
var type = Type.GetType(name);
@@ -20,7 +19,7 @@ public class ViewLocator : IDataTemplate
{
return (Control)Activator.CreateInstance(type)!;
}
-
+
return new TextBlock { Text = "Not Found: " + name };
}
diff --git a/JVDesktop/ViewModels/MainWindowViewModel.cs b/JVDesktop/ViewModels/MainWindowViewModel.cs
index 0ca52c8..4dd12b4 100644
--- a/JVDesktop/ViewModels/MainWindowViewModel.cs
+++ b/JVDesktop/ViewModels/MainWindowViewModel.cs
@@ -1,6 +1,15 @@
-namespace JVDesktop.ViewModels;
+using System;
+using System.Windows.Input;
+using CommunityToolkit.Mvvm.Input;
-public partial class MainWindowViewModel : ViewModelBase
+namespace JVDesktop.ViewModels;
+
+public class MainWindowViewModel : ViewModelBase
{
- public string Greeting { get; } = "Welcome to Avalonia!";
+ public string Greeting => "Welcome to Avalonia!";
+
+ public ICommand ButtonClickCommand { get; } = new RelayCommand(() =>
+ {
+ Console.WriteLine("Button clicked");
+ });
}
diff --git a/JVDesktop/Views/MainWindow.axaml b/JVDesktop/Views/MainWindow.axaml
index 9fb406d..13f20c4 100644
--- a/JVDesktop/Views/MainWindow.axaml
+++ b/JVDesktop/Views/MainWindow.axaml
@@ -15,6 +15,9 @@
-
+
+
+
+
--
cgit