From 521ed1bd0f5719cb9399a7855863ddada3baa502 Mon Sep 17 00:00:00 2001
From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com>
Date: Fri, 26 Sep 2025 00:46:24 +0800
Subject: [PATCH] misc: reduce publish warning.
---
.../Pages/AutoCompleteBoxDemo.axaml | 22 +++----
.../Pages/NotificationDemo.axaml.cs | 3 +-
.../Pages/TreeDataGridDemo.axaml.cs | 5 +-
.../Pages/TreeViewDemo.axaml.cs | 57 +++++++++++--------
.../ViewModels/IconDemoViewModel.cs | 13 ++---
.../TreeDataGridDemo/FilesPageViewModel.cs | 29 +++++-----
.../TreeDataGrid.axaml | 3 +-
7 files changed, 69 insertions(+), 63 deletions(-)
diff --git a/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml b/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
index c0fa49c..614efa4 100644
--- a/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
+++ b/demo/Semi.Avalonia.Demo/Pages/AutoCompleteBoxDemo.axaml
@@ -32,37 +32,37 @@
ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
@@ -70,17 +70,17 @@
Width="100"
IsEnabled="False"
Watermark="Disabled"
- ValueMemberBinding="{ReflectionBinding Name}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
+ ValueMemberBinding="{Binding Name,DataType=vm:StateData}" />
diff --git a/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs
index 4392a7a..15150ba 100644
--- a/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Pages/NotificationDemo.axaml.cs
@@ -27,7 +27,8 @@ public partial class NotificationDemo : UserControl
if (sender is RadioButton b && b.Content is string s)
{
Enum.TryParse(s, out var t);
- _manager.Position = t;
+ if (_manager is not null)
+ _manager.Position = t;
}
}
diff --git a/demo/Semi.Avalonia.Demo/Pages/TreeDataGridDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/TreeDataGridDemo.axaml.cs
index 9da4a82..5c511cb 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TreeDataGridDemo.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Pages/TreeDataGridDemo.axaml.cs
@@ -14,10 +14,9 @@ public partial class TreeDataGridDemo : UserControl
private void SelectedPath_KeyDown(object? sender, KeyEventArgs e)
{
- if (e.Key == Key.Enter)
+ if (e.Key == Key.Enter && DataContext is TreeDataGridDemoViewModel vm)
{
- var vm = DataContext as TreeDataGridDemoViewModel;
- vm.FilesContext.SelectedPath = (sender as TextBox)!.Text;
+ vm.FilesContext.SelectedPath = (sender as TextBox)?.Text;
}
}
}
\ No newline at end of file
diff --git a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
index 3dd9451..84aad31 100644
--- a/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
+++ b/demo/Semi.Avalonia.Demo/Pages/TreeViewDemo.axaml.cs
@@ -21,33 +21,40 @@ public class TreeViewVm : ObservableObject
public TreeViewVm()
{
- Items = new ObservableCollection()
- {
- new TreeViewItemVm() { Name = "Item 1", Id = "1" },
- new TreeViewItemVm() { Name = "Item 2", Id = "2" },
- new TreeViewItemVm()
+ Items =
+ [
+ new TreeViewItemVm { Name = "Item 1", Id = "1" },
+ new TreeViewItemVm { Name = "Item 2", Id = "2" },
+ new TreeViewItemVm
{
- Name = "Item 3", Id = "3", Items = new ObservableCollection()
- {
- new TreeViewItemVm() { Name = "Item 3.1", Id = "3.1" },
- new TreeViewItemVm() { Name = "Item 3.2", Id = "3.2" },
- new TreeViewItemVm() { Name = "Item 3.3", Id = "3.3" },
- },
- },
- };
+ Name = "Item 3", Id = "3", Items =
+ [
+ new TreeViewItemVm { Name = "Item 3.1", Id = "3.1" },
+ new TreeViewItemVm { Name = "Item 3.2", Id = "3.2" },
+ new TreeViewItemVm { Name = "Item 3.3", Id = "3.3" }
+ ],
+ }
- MultipleLevelItems = new();
- for (int i = 1; i < 6; i++)
+ ];
+
+ MultipleLevelItems = [];
+ for (var i = 1; i < 6; i++)
{
- FirstItem firstItem = new FirstItem { Id = i, Name = $"FirstItem {i}" };
- firstItem.SecondItems = new();
- for (int j = 1; j < 6; j++)
+ var firstItem = new FirstItem
{
- SecondItem secondItem = new SecondItem { Id = j, Name = $"SecondItem {j}" };
- secondItem.ThirdItemItems = new();
- for (int k = 1; k < 6; k++)
+ Id = i, Name = $"FirstItem {i}",
+ SecondItems = []
+ };
+ for (var j = 1; j < 6; j++)
+ {
+ var secondItem = new SecondItem
{
- ThirdItem thirdItem = new ThirdItem { Id = k, Name = $"ThirdItem {k}" };
+ Id = j, Name = $"SecondItem {j}",
+ ThirdItemItems = []
+ };
+ for (var k = 1; k < 6; k++)
+ {
+ var thirdItem = new ThirdItem { Id = k, Name = $"ThirdItem {k}" };
secondItem.ThirdItemItems.Add(thirdItem);
}
@@ -61,9 +68,9 @@ public class TreeViewVm : ObservableObject
public partial class TreeViewItemVm : ObservableObject
{
- public ObservableCollection Items { get; set; }
- public string Name { get; set; }
- public string Id { get; set; }
+ public ObservableCollection Items { get; set; } = [];
+ public string? Name { get; set; }
+ public string? Id { get; set; }
}
public class ItemBase
diff --git a/demo/Semi.Avalonia.Demo/ViewModels/IconDemoViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/IconDemoViewModel.cs
index d731fc9..8cb1851 100644
--- a/demo/Semi.Avalonia.Demo/ViewModels/IconDemoViewModel.cs
+++ b/demo/Semi.Avalonia.Demo/ViewModels/IconDemoViewModel.cs
@@ -10,7 +10,7 @@ namespace Semi.Avalonia.Demo.ViewModels;
public partial class IconDemoViewModel : ObservableObject
{
- private readonly IResourceDictionary? _resources = new Icons();
+ private readonly Icons _resources = new();
private readonly Dictionary _filledIcons = new();
private readonly Dictionary _strokedIcons = new();
@@ -22,8 +22,6 @@ public partial class IconDemoViewModel : ObservableObject
public void InitializeResources()
{
- if (_resources is null) return;
-
foreach (var provider in _resources.MergedDictionaries)
{
if (provider is not ResourceDictionary dic) continue;
@@ -31,16 +29,17 @@ public partial class IconDemoViewModel : ObservableObject
foreach (var key in dic.Keys)
{
if (dic[key] is not Geometry geometry) continue;
+ var resourceKey = key.ToString() ?? string.Empty;
var icon = new IconItem
{
- ResourceKey = key.ToString(),
+ ResourceKey = resourceKey,
Geometry = geometry
};
- if (key.ToString().EndsWith("Stroked"))
- _strokedIcons[key.ToString()] = icon;
+ if (resourceKey.EndsWith("Stroked", StringComparison.InvariantCultureIgnoreCase))
+ _strokedIcons[resourceKey] = icon;
else
- _filledIcons[key.ToString()] = icon;
+ _filledIcons[resourceKey] = icon;
}
}
diff --git a/demo/Semi.Avalonia.Demo/ViewModels/TreeDataGridDemo/FilesPageViewModel.cs b/demo/Semi.Avalonia.Demo/ViewModels/TreeDataGridDemo/FilesPageViewModel.cs
index 587f415..a01d430 100644
--- a/demo/Semi.Avalonia.Demo/ViewModels/TreeDataGridDemo/FilesPageViewModel.cs
+++ b/demo/Semi.Avalonia.Demo/ViewModels/TreeDataGridDemo/FilesPageViewModel.cs
@@ -19,9 +19,15 @@ public partial class FilesPageViewModel : ObservableObject
public IList Drives { get; }
public HierarchicalTreeDataGridSource Source { get; }
[ObservableProperty] private string _selectedDrive;
- [ObservableProperty] private string? _selectedPath;
+ private string? _selectedPath;
[ObservableProperty] private FileNodeViewModel? _root;
+ public string? SelectedPath
+ {
+ get => _selectedPath;
+ set => SetSelectedPath(value);
+ }
+
partial void OnSelectedDriveChanged(string value)
{
Root = new FileNodeViewModel(value, true, true);
@@ -31,11 +37,6 @@ public partial class FilesPageViewModel : ObservableObject
}
}
- partial void OnSelectedPathChanged(string? value)
- {
- SetSelectedPath(value);
- }
-
public FilesPageViewModel()
{
Drives = DriveInfo.GetDrives().Select(x => x.Name).ToList();
@@ -48,7 +49,7 @@ public partial class FilesPageViewModel : ObservableObject
SelectedDrive = Drives.FirstOrDefault() ?? "/";
}
- Source = new HierarchicalTreeDataGridSource(Array.Empty())
+ Source = new HierarchicalTreeDataGridSource([])
{
Columns =
{
@@ -108,16 +109,14 @@ public partial class FilesPageViewModel : ObservableObject
foreach (var i in e.SelectedItems)
Trace.WriteLine($"Selected '{i?.Path}'");
}
-
- private void SetSelectedPath(string? value)
+ private void SetSelectedPath(string? path)
{
- if (string.IsNullOrEmpty(value))
+ if (string.IsNullOrEmpty(path))
{
Source.RowSelection!.Clear();
return;
}
- var path = value;
var components = new Stack();
DirectoryInfo? d = null;
@@ -148,7 +147,7 @@ public partial class FilesPageViewModel : ObservableObject
if (driveIndex >= 0)
SelectedDrive = Drives[driveIndex];
- FileNodeViewModel? node = _root;
+ var node = Root;
index = new IndexPath(0);
while (node is not null && components.Count > 0)
@@ -162,7 +161,7 @@ public partial class FilesPageViewModel : ObservableObject
}
}
- Source.Items = [Root];
+ Source.Items = [Root!];
Source.RowSelection!.SelectedIndex = index;
}
}
@@ -275,8 +274,8 @@ public partial class FileNodeViewModel : ObservableObject, IEditableObject
};
}
- void IEditableObject.BeginEdit() => _undoName = _name;
- void IEditableObject.CancelEdit() => _name = _undoName!;
+ void IEditableObject.BeginEdit() => _undoName = Name;
+ void IEditableObject.CancelEdit() => Name = _undoName ?? string.Empty;
void IEditableObject.EndEdit() => _undoName = null;
private void OnChanged(object sender, FileSystemEventArgs e)
diff --git a/src/Semi.Avalonia.TreeDataGrid/TreeDataGrid.axaml b/src/Semi.Avalonia.TreeDataGrid/TreeDataGrid.axaml
index 845ed27..615412e 100644
--- a/src/Semi.Avalonia.TreeDataGrid/TreeDataGrid.axaml
+++ b/src/Semi.Avalonia.TreeDataGrid/TreeDataGrid.axaml
@@ -1,7 +1,8 @@
+ xmlns:conv="clr-namespace:Avalonia.Controls.Converters;assembly=Avalonia.Controls.TreeDataGrid"
+ x:CompileBindings="True">