initial commit

This commit is contained in:
Matthias Heil
2026-08-10 14:46:18 +02:00
commit c946aa63e6
69 changed files with 8865 additions and 0 deletions
@@ -0,0 +1,21 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Description>A powerful PropertyGrid control for Avalonia with Xceed-like functionality</Description>
<Authors>PropertyGrid Contributors</Authors>
<Version>1.0.0</Version>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Avalonia" Version="12.1.0" />
<PackageReference Include="Avalonia.Themes.Fluent" Version="12.1.0" />
<PackageReference Include="Avalonia.Controls.ColorPicker" Version="12.1.0" />
</ItemGroup>
<ItemGroup>
<AvaloniaResource Include="**\*.axaml" />
</ItemGroup>
</Project>
@@ -0,0 +1,364 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Avalonia.PropertyGrid.Controls"
xmlns:models="using:Avalonia.PropertyGrid.Models"
xmlns:sys="clr-namespace:System;assembly=System.Runtime">
<Design.PreviewWith>
<Border Padding="20" Width="400" Height="600">
<controls:PropertyGrid />
</Border>
</Design.PreviewWith>
<Style Selector="controls|PropertyGrid">
<Setter Property="Background" Value="{DynamicResource SystemControlBackgroundAltHighBrush}" />
<Setter Property="BorderBrush" Value="{DynamicResource SystemControlForegroundBaseMediumLowBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Template">
<ControlTemplate>
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="4">
<Grid RowDefinitions="Auto,*">
<!-- Search/Filter Box -->
<Border Grid.Row="0"
Padding="8"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,0,1">
<StackPanel>
<TextBox Name="PART_SearchBox"
PlaceholderText="Search properties..."
Text="{Binding $parent[controls:PropertyGrid].SearchText, Mode=TwoWay}" />
<!-- Debug: Show count -->
<TextBlock Text="{Binding $parent[controls:PropertyGrid].FilteredProperties.Count, StringFormat='Properties: {0}'}"
FontSize="10"
Foreground="Gray"
Margin="0,4,0,0" />
</StackPanel>
</Border>
<!-- Properties List -->
<ScrollViewer Grid.Row="1"
HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto">
<Panel>
<!-- Category View -->
<ItemsControl Name="PART_CategoryItemsControl"
ItemsSource="{TemplateBinding CategoryGroups}"
IsVisible="{TemplateBinding ShowCategories}">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="models:CategoryGroup">
<StackPanel>
<!-- Category Header -->
<Border Background="{DynamicResource SystemControlHighlightAccentBrush}"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,0,1"
Padding="8,4"
HorizontalAlignment="Left">
<StackPanel Orientation="Horizontal" Spacing="4">
<!-- Expand/Collapse Toggle -->
<ToggleButton IsChecked="{Binding IsExpanded, Mode=TwoWay}"
Width="16" Height="16"
Padding="0"
VerticalAlignment="Center">
<Panel>
<!-- Right Arrow (collapsed/closed state) -->
<Path IsVisible="{Binding !IsExpanded}"
Data="M 4,2 L 10,8 L 4,14 Z"
Fill="White"
Width="12" Height="12"
Stretch="Uniform" />
<!-- Down Arrow (expanded/open state) -->
<Path IsVisible="{Binding IsExpanded}"
Data="M 2,4 L 8,10 L 14,4 Z"
Fill="White"
Width="12" Height="12"
Stretch="Uniform" />
</Panel>
</ToggleButton>
<!-- Category Name -->
<TextBlock Text="{Binding CategoryName}"
FontWeight="Bold"
Foreground="White"
VerticalAlignment="Center" />
<!-- Property Count -->
<TextBlock Text="{Binding PropertyCount, StringFormat='({0})'}"
FontSize="11"
Foreground="White"
Opacity="0.8"
VerticalAlignment="Center"
Margin="4,0,0,0" />
</StackPanel>
</Border>
<!-- Properties in Category -->
<ItemsControl ItemsSource="{Binding Properties}"
IsVisible="{Binding IsExpanded}"
Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="models:PropertyItem">
<Border Margin="16,0,0,0" BorderThickness="0">
<Grid MinHeight="32"
Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="150" MaxWidth="400" SharedSizeGroup="PropertyName" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<!-- Property Name -->
<Border Grid.Column="0"
Padding="8,4"
Margin="{Binding IndentLevel, Converter={StaticResource IndentConverter}}"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,1,1">
<StackPanel Orientation="Horizontal" Spacing="4">
<!-- Expander for complex types with arrow icons -->
<ToggleButton IsVisible="{Binding IsExpandable}"
IsChecked="{Binding IsExpanded}"
Width="16" Height="16"
Padding="0"
VerticalAlignment="Center">
<Panel>
<!-- Right Arrow (collapsed/closed state) -->
<Path IsVisible="{Binding !IsExpanded}"
Data="M 4,2 L 10,8 L 4,14 Z"
Fill="{DynamicResource SystemControlForegroundBaseHighBrush}"
Width="12" Height="12"
Stretch="Uniform" />
<!-- Down Arrow (expanded/open state) -->
<Path IsVisible="{Binding IsExpanded}"
Data="M 2,4 L 8,10 L 14,4 Z"
Fill="{DynamicResource SystemControlForegroundBaseHighBrush}"
Width="12" Height="12"
Stretch="Uniform" />
</Panel>
</ToggleButton>
<TextBlock Text="{Binding DisplayName}"
VerticalAlignment="Center"
ToolTip.Tip="{Binding Description}" />
</StackPanel>
</Border>
<!-- Splitter -->
<GridSplitter Grid.Column="1"
Width="4"
Background="Transparent"
ResizeDirection="Columns" />
<!-- Property Value Editor -->
<Border Grid.Column="2"
Padding="4"
Background="{DynamicResource SystemControlBackgroundChromeMediumLowBrush}"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,0,1">
<Grid>
<!-- Color Picker for Color properties with colored background -->
<Border Background="{Binding ColorValue, Converter={StaticResource ColorToBrushConverter}}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsColorTypeConverter}}"
CornerRadius="4"
Padding="4">
<ColorPicker Color="{Binding ColorValue, Mode=TwoWay}"
IsEnabled="{Binding !IsReadOnly}"
IsAlphaEnabled="True"
HorizontalAlignment="Stretch">
<ColorPicker.Styles>
<Style Selector="ColorPicker">
<Setter Property="MaxWidth" Value="{x:Static sys:Double.PositiveInfinity}" />
</Style>
</ColorPicker.Styles>
</ColorPicker>
</Border>
<!-- NumericUpDown for numeric properties -->
<NumericUpDown Value="{Binding NumericValue, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsNumericTypeConverter}}"
IsReadOnly="{Binding IsReadOnly}"
FormatString="{Binding PropertyType, Converter={StaticResource NumericFormatConverter}}"
AllowSpin="True"
ShowButtonSpinner="True"
HorizontalAlignment="Stretch" />
<!-- CheckBox for boolean properties -->
<CheckBox IsChecked="{Binding BooleanValue, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsBooleanTypeConverter}}"
IsEnabled="{Binding !IsReadOnly}"
Content="{Binding DisplayName}"
VerticalAlignment="Center"
HorizontalAlignment="Left" />
<!-- ComboBox for enum properties -->
<ComboBox SelectedItem="{Binding Value, Mode=TwoWay}"
ItemsSource="{Binding PropertyType, Converter={StaticResource EnumValuesConverter}}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsEnumConverter}}"
IsEnabled="{Binding !IsReadOnly}"
HorizontalAlignment="Stretch" />
<!-- TextBox for other properties -->
<TextBox Text="{Binding ValueString, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsOtherTypeConverter}}"
IsReadOnly="{Binding IsReadOnly}"
HorizontalAlignment="Stretch" />
</Grid>
</Border>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<!-- Flat List View -->
<ItemsControl Name="PART_ItemsControl"
ItemsSource="{TemplateBinding FilteredProperties}"
IsVisible="{TemplateBinding ShowCategories, Converter={StaticResource NegateBoolConverter}}"
Grid.IsSharedSizeScope="True">
<ItemsControl.ItemTemplate>
<DataTemplate DataType="models:PropertyItem">
<Border Margin="0,0,0,0" BorderThickness="0">
<Grid MinHeight="32"
Background="Transparent">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" MinWidth="150" MaxWidth="400" SharedSizeGroup="PropertyName" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<!-- Property Name -->
<Border Grid.Column="0"
Padding="8,4"
Margin="{Binding IndentLevel, Converter={StaticResource IndentConverter}}"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,1,1">
<StackPanel Orientation="Horizontal" Spacing="4">
<!-- Expander for complex types with arrow icons -->
<ToggleButton IsVisible="{Binding IsExpandable}"
IsChecked="{Binding IsExpanded}"
Width="16" Height="16"
Padding="0"
VerticalAlignment="Center">
<Panel>
<!-- Right Arrow (collapsed/closed state) -->
<Path IsVisible="{Binding !IsExpanded}"
Data="M 4,2 L 10,8 L 4,14 Z"
Fill="{DynamicResource SystemControlForegroundBaseHighBrush}"
Width="12" Height="12"
Stretch="Uniform" />
<!-- Down Arrow (expanded/open state) -->
<Path IsVisible="{Binding IsExpanded}"
Data="M 2,4 L 8,10 L 14,4 Z"
Fill="{DynamicResource SystemControlForegroundBaseHighBrush}"
Width="12" Height="12"
Stretch="Uniform" />
</Panel>
</ToggleButton>
<TextBlock Text="{Binding DisplayName}"
VerticalAlignment="Center"/>
</StackPanel>
</Border>
<!-- Splitter -->
<GridSplitter Grid.Column="1"
Width="4"
Background="Transparent"
ResizeDirection="Columns" />
<!-- Property Value -->
<Border Grid.Column="2"
Padding="8,4"
Background="{DynamicResource SystemControlBackgroundAltHighBrush}"
BorderBrush="{DynamicResource SystemControlForegroundBaseMediumLowBrush}"
BorderThickness="0,0,0,1">
<Grid>
<!-- ColorPicker for color properties with colored background -->
<Border Background="{Binding ColorValue, Converter={StaticResource ColorToBrushConverter}}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsColorTypeConverter}}"
CornerRadius="4"
Padding="4">
<ColorPicker Color="{Binding ColorValue, Mode=TwoWay}"
IsEnabled="{Binding !IsReadOnly}"
HorizontalAlignment="Stretch">
<ColorPicker.Styles>
<Style Selector="ColorPicker">
<Setter Property="Width" Value="{x:Static sys:Double.PositiveInfinity}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
</Style>
</ColorPicker.Styles>
</ColorPicker>
</Border>
<!-- NumericUpDown for numeric properties -->
<NumericUpDown Value="{Binding NumericValue, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsNumericTypeConverter}}"
IsReadOnly="{Binding IsReadOnly}"
FormatString="{Binding PropertyType, Converter={StaticResource NumericFormatConverter}}"
AllowSpin="True"
ShowButtonSpinner="True"
HorizontalAlignment="Stretch" />
<!-- CheckBox for boolean properties -->
<CheckBox IsChecked="{Binding BooleanValue, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsBooleanTypeConverter}}"
IsEnabled="{Binding !IsReadOnly}"
Content="{Binding DisplayName}"
VerticalAlignment="Center"
HorizontalAlignment="Left" />
<!-- ComboBox for enum properties -->
<ComboBox SelectedItem="{Binding Value, Mode=TwoWay}"
ItemsSource="{Binding PropertyType, Converter={StaticResource EnumValuesConverter}}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsEnumConverter}}"
IsEnabled="{Binding !IsReadOnly}"
HorizontalAlignment="Stretch" />
<!-- TextBox for other properties -->
<TextBox Text="{Binding ValueString, Mode=TwoWay}"
IsVisible="{Binding PropertyType, Converter={StaticResource IsOtherTypeConverter}}"
IsReadOnly="{Binding IsReadOnly}"
HorizontalAlignment="Stretch" />
</Grid>
</Border>
</Grid>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Panel>
</ScrollViewer>
</Grid>
</Border>
</ControlTemplate>
</Setter>
</Style>
<!-- Converters and Resources -->
<Style Selector="controls|PropertyGrid">
<Style.Resources>
<controls:IndentToMarginConverter x:Key="IndentConverter" />
<controls:EnumValuesConverter x:Key="EnumValuesConverter" />
<controls:IsEnumConverter x:Key="IsEnumConverter" />
<controls:IsSimpleTypeConverter x:Key="IsSimpleTypeConverter" />
<controls:TypeToBoolConverter x:Key="TypeToBoolConverter" />
<controls:ColorToStringConverter x:Key="ColorToStringConverter" />
<controls:ColorToBrushConverter x:Key="ColorToBrushConverter" />
<controls:IsColorTypeConverter x:Key="IsColorTypeConverter" />
<controls:IsNumericTypeConverter x:Key="IsNumericTypeConverter" />
<controls:IsBooleanTypeConverter x:Key="IsBooleanTypeConverter" />
<controls:IsOtherTypeConverter x:Key="IsOtherTypeConverter" />
<controls:NumericFormatConverter x:Key="NumericFormatConverter" />
<controls:NegateBoolConverter x:Key="NegateBoolConverter" />
</Style.Resources>
</Style>
</Styles>
@@ -0,0 +1,343 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using Avalonia.Controls.Primitives;
using Avalonia.PropertyGrid.Models;
using Avalonia.PropertyGrid.Services;
namespace Avalonia.PropertyGrid.Controls;
/// <summary>
/// A PropertyGrid control for editing object properties with Xceed-like functionality
/// </summary>
public class PropertyGrid : TemplatedControl
{
private object? _selectedObject;
private string _searchText = string.Empty;
/// <summary>
/// Defines the SelectedObject property.
/// </summary>
public static readonly StyledProperty<object?> SelectedObjectProperty =
AvaloniaProperty.Register<PropertyGrid, object?>(nameof(SelectedObject));
/// <summary>
/// Defines the SearchText property.
/// </summary>
public static readonly StyledProperty<string> SearchTextProperty =
AvaloniaProperty.Register<PropertyGrid, string>(nameof(SearchText), string.Empty);
/// <summary>
/// Defines the ShowCategories property.
/// </summary>
public static readonly StyledProperty<bool> ShowCategoriesProperty =
AvaloniaProperty.Register<PropertyGrid, bool>(nameof(ShowCategories), true);
/// <summary>
/// Defines the ShowDescriptions property.
/// </summary>
public static readonly StyledProperty<bool> ShowDescriptionsProperty =
AvaloniaProperty.Register<PropertyGrid, bool>(nameof(ShowDescriptions), true);
/// <summary>
/// Defines the FilteredProperties property.
/// </summary>
public static readonly StyledProperty<ObservableCollection<PropertyItem>> FilteredPropertiesProperty =
AvaloniaProperty.Register<PropertyGrid, ObservableCollection<PropertyItem>>(
nameof(FilteredProperties),
new ObservableCollection<PropertyItem>());
/// <summary>
/// Defines the CategoryGroups property.
/// </summary>
public static readonly StyledProperty<ObservableCollection<CategoryGroup>> CategoryGroupsProperty =
AvaloniaProperty.Register<PropertyGrid, ObservableCollection<CategoryGroup>>(
nameof(CategoryGroups),
new ObservableCollection<CategoryGroup>());
static PropertyGrid()
{
SelectedObjectProperty.Changed.AddClassHandler<PropertyGrid>((grid, args) =>
grid.OnSelectedObjectChanged(args));
SearchTextProperty.Changed.AddClassHandler<PropertyGrid>((grid, args) =>
grid.OnSearchTextChanged(args));
}
/// <summary>
/// Initializes a new instance of the PropertyGrid class.
/// </summary>
public PropertyGrid()
{
FilteredProperties = new ObservableCollection<PropertyItem>();
}
/// <summary>
/// The object whose properties are being edited
/// </summary>
public object? SelectedObject
{
get => GetValue(SelectedObjectProperty);
set => SetValue(SelectedObjectProperty, value);
}
/// <summary>
/// The search/filter text
/// </summary>
public string SearchText
{
get => GetValue(SearchTextProperty);
set => SetValue(SearchTextProperty, value);
}
/// <summary>
/// Whether to show properties grouped by categories
/// </summary>
public bool ShowCategories
{
get => GetValue(ShowCategoriesProperty);
set => SetValue(ShowCategoriesProperty, value);
}
/// <summary>
/// Whether to show property descriptions
/// </summary>
public bool ShowDescriptions
{
get => GetValue(ShowDescriptionsProperty);
set => SetValue(ShowDescriptionsProperty, value);
}
/// <summary>
/// The filtered list of properties to display
/// </summary>
public ObservableCollection<PropertyItem> FilteredProperties
{
get => GetValue(FilteredPropertiesProperty);
set => SetValue(FilteredPropertiesProperty, value);
}
/// <summary>
/// The category groups to display
/// </summary>
public ObservableCollection<CategoryGroup> CategoryGroups
{
get => GetValue(CategoryGroupsProperty);
set => SetValue(CategoryGroupsProperty, value);
}
private List<PropertyItem> _allProperties = new();
private void OnSelectedObjectChanged(AvaloniaPropertyChangedEventArgs args)
{
_selectedObject = args.NewValue;
System.Diagnostics.Debug.WriteLine($"PropertyGrid: SelectedObject changed to {_selectedObject?.GetType().Name ?? "null"}");
RefreshProperties();
}
private void OnSearchTextChanged(AvaloniaPropertyChangedEventArgs args)
{
_searchText = args.NewValue as string ?? string.Empty;
FilterProperties();
}
/// <summary>
/// Refreshes the property list from the selected object
/// </summary>
public void RefreshProperties()
{
_allProperties.Clear();
FilteredProperties.Clear();
if (_selectedObject == null)
{
System.Diagnostics.Debug.WriteLine("PropertyGrid: RefreshProperties - SelectedObject is null");
return;
}
_allProperties = PropertyItemFactory.CreatePropertyItems(_selectedObject);
System.Diagnostics.Debug.WriteLine($"PropertyGrid: Created {_allProperties.Count} property items");
// Subscribe to property changes
foreach (var item in _allProperties)
{
item.PropertyChanged += OnPropertyItemChanged;
}
FilterProperties();
System.Diagnostics.Debug.WriteLine($"PropertyGrid: FilteredProperties count = {FilteredProperties.Count}");
}
private void OnPropertyItemChanged(object? sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(PropertyItem.IsExpanded) && sender is PropertyItem item)
{
HandlePropertyExpansion(item);
}
}
private void HandlePropertyExpansion(PropertyItem item)
{
System.Diagnostics.Debug.WriteLine($"HandlePropertyExpansion: {item.DisplayName}, IsExpanded={item.IsExpanded}, Children.Count={item.Children.Count}");
if (item.IsExpanded && item.Value != null)
{
// Load child properties if not already loaded
if (item.Children.Count == 0)
{
item.Children = PropertyItemFactory.CreatePropertyItems(item.Value, item.IndentLevel + 1);
System.Diagnostics.Debug.WriteLine($" Loaded {item.Children.Count} children for {item.DisplayName}");
// Subscribe to property changes for children
foreach (var child in item.Children)
{
child.PropertyChanged += OnPropertyItemChanged;
}
}
// Insert children after the parent in the filtered list
var parentIndex = FilteredProperties.IndexOf(item);
if (parentIndex >= 0)
{
int insertedCount = 0;
for (int i = 0; i < item.Children.Count; i++)
{
// Only insert if not already in the list
if (!FilteredProperties.Contains(item.Children[i]))
{
FilteredProperties.Insert(parentIndex + i + 1, item.Children[i]);
insertedCount++;
}
}
System.Diagnostics.Debug.WriteLine($" Inserted {insertedCount} children into FilteredProperties at index {parentIndex + 1}");
}
// Also insert into CategoryGroups if ShowCategories is enabled
if (ShowCategories)
{
foreach (var categoryGroup in CategoryGroups)
{
var itemIndexInCategory = categoryGroup.Properties.IndexOf(item);
if (itemIndexInCategory >= 0)
{
// Insert children after the parent in the category
for (int i = 0; i < item.Children.Count; i++)
{
if (!categoryGroup.Properties.Contains(item.Children[i]))
{
categoryGroup.Properties.Insert(itemIndexInCategory + i + 1, item.Children[i]);
}
}
System.Diagnostics.Debug.WriteLine($" Inserted {item.Children.Count} children into category '{categoryGroup.CategoryName}'");
break;
}
}
}
}
else if (!item.IsExpanded)
{
// Remove children from the filtered list (but keep them in item.Children for re-expansion)
int removedCount = 0;
foreach (var child in item.Children)
{
if (FilteredProperties.Remove(child))
{
removedCount++;
}
// If child is also expanded, recursively collapse it
if (child.IsExpanded)
{
child.IsExpanded = false;
}
}
System.Diagnostics.Debug.WriteLine($" Removed {removedCount} children from FilteredProperties");
// Also remove from CategoryGroups if ShowCategories is enabled
if (ShowCategories)
{
foreach (var categoryGroup in CategoryGroups)
{
if (categoryGroup.Properties.Contains(item))
{
int categoryRemovedCount = 0;
foreach (var child in item.Children)
{
if (categoryGroup.Properties.Remove(child))
{
categoryRemovedCount++;
}
}
System.Diagnostics.Debug.WriteLine($" Removed {categoryRemovedCount} children from category '{categoryGroup.CategoryName}'");
break;
}
}
}
}
}
private void FilterProperties()
{
FilteredProperties.Clear();
CategoryGroups.Clear();
var filtered = _allProperties.AsEnumerable();
// Apply search filter
if (!string.IsNullOrWhiteSpace(_searchText))
{
var searchLower = _searchText.ToLowerInvariant();
filtered = filtered.Where(p =>
p.DisplayName.ToLowerInvariant().Contains(searchLower) ||
(p.Category?.ToLowerInvariant().Contains(searchLower) ?? false) ||
(p.Description?.ToLowerInvariant().Contains(searchLower) ?? false));
}
// Populate flat list
foreach (var item in filtered)
{
FilteredProperties.Add(item);
}
System.Diagnostics.Debug.WriteLine($"PropertyGrid: FilterProperties - ShowCategories={ShowCategories}, filtered count={filtered.Count()}");
// Group by category for category view
if (ShowCategories)
{
var groupedByCategory = filtered
.GroupBy(p => p.Category ?? "Misc")
.OrderBy(g => g.Key);
foreach (var group in groupedByCategory)
{
var categoryGroup = new CategoryGroup
{
CategoryName = group.Key
};
foreach (var item in group.OrderBy(p => p.Order).ThenBy(p => p.DisplayName))
{
categoryGroup.Properties.Add(item);
}
CategoryGroups.Add(categoryGroup);
System.Diagnostics.Debug.WriteLine($"PropertyGrid: Added category '{categoryGroup.CategoryName}' with {categoryGroup.PropertyCount} properties");
}
System.Diagnostics.Debug.WriteLine($"PropertyGrid: Total CategoryGroups={CategoryGroups.Count}");
}
}
/// <summary>
/// Refreshes all property values from the source object
/// </summary>
public void RefreshValues()
{
foreach (var item in _allProperties)
{
item.RefreshValue();
}
}
}
@@ -0,0 +1,33 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;
using Avalonia.Media;
namespace Avalonia.PropertyGrid.Controls;
/// <summary>
/// Converts an Avalonia.Media.Color to a SolidColorBrush
/// </summary>
public class ColorToBrushConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Color color)
{
return new SolidColorBrush(color);
}
// Return transparent brush if not a color
return new SolidColorBrush(Colors.Transparent);
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is SolidColorBrush brush && brush.Color != null)
{
return brush.Color;
}
return Colors.Transparent;
}
}
@@ -0,0 +1,29 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;
namespace Avalonia.PropertyGrid.Controls;
/// <summary>
/// Converts boolean value to its negation for two-way binding
/// </summary>
public class NegateBoolConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is bool boolValue)
{
return !boolValue;
}
return false;
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is bool boolValue)
{
return !boolValue;
}
return false;
}
}
@@ -0,0 +1,33 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;
namespace Avalonia.PropertyGrid.Controls;
/// <summary>
/// Converts PropertyType to appropriate numeric format string
/// </summary>
public class NumericFormatConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
// Floating point types use decimal places
if (type == typeof(float) || type == typeof(double) || type == typeof(decimal))
{
return "N2"; // 2 decimal places
}
// Integer types use no decimal places
return "N0";
}
return "N0";
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
@@ -0,0 +1,297 @@
using System;
using System.Globalization;
using Avalonia.Data.Converters;
namespace Avalonia.PropertyGrid.Controls;
/// <summary>
/// Converts indent level to left margin
/// </summary>
public class IndentToMarginConverter : IValueConverter
{
/// <summary>
/// Converts indent level to left margin.
/// </summary>
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is int indentLevel)
{
return new Thickness(indentLevel * 16, 0, 0, 0);
}
return new Thickness(0);
}
/// <summary>
/// Not implemented.
/// </summary>
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Converts enum type to list of enum values
/// </summary>
public class EnumValuesConverter : IValueConverter
{
/// <summary>
/// Converts an enum type to an array of its values.
/// </summary>
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type enumType && enumType.IsEnum)
{
return Enum.GetValues(enumType);
}
return null;
}
/// <summary>
/// Not implemented.
/// </summary>
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type is an enum
/// </summary>
public class IsEnumConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
return type.IsEnum;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type is a simple type (string, number, bool, etc.)
/// </summary>
public class IsSimpleTypeConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
return type == typeof(string) ||
type == typeof(int) || type == typeof(long) || type == typeof(short) ||
type == typeof(uint) || type == typeof(ulong) || type == typeof(ushort) ||
type == typeof(byte) || type == typeof(sbyte) ||
type == typeof(float) || type == typeof(double) || type == typeof(decimal) ||
type == typeof(DateTime) || type == typeof(TimeSpan) || type == typeof(Guid) ||
type == typeof(DateTimeOffset) || !type.IsEnum;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type matches the specified type name
/// </summary>
public class TypeToBoolConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type && parameter is string typeName)
{
return type.FullName == typeName || type.Name == typeName;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Converts Color to/from hex string representation
/// </summary>
public class ColorToStringConverter : IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Media.Color color)
{
return $"#{color.A:X2}{color.R:X2}{color.G:X2}{color.B:X2}";
}
return value?.ToString();
}
public object? ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is string hexString && !string.IsNullOrWhiteSpace(hexString))
{
try
{
hexString = hexString.Trim();
if (!hexString.StartsWith("#"))
hexString = "#" + hexString;
return Media.Color.Parse(hexString);
}
catch
{
// If parsing fails, return the original color or default
return Media.Colors.Black;
}
}
return null;
}
}
/// <summary>
/// Checks if a type is Color
/// </summary>
public class IsColorTypeConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
bool isColor = type == typeof(Media.Color);
// Support inverting the result
if (parameter is string param && param.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return !isColor;
}
return isColor;
}
// Default to showing TextBox (inverted result)
if (parameter is string param2 && param2.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return true;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type is numeric
/// </summary>
public class IsNumericTypeConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
bool isNumeric = type == typeof(int) || type == typeof(long) || type == typeof(short) ||
type == typeof(byte) || type == typeof(uint) || type == typeof(ulong) ||
type == typeof(ushort) || type == typeof(sbyte) ||
type == typeof(float) || type == typeof(double) || type == typeof(decimal);
// Support inverting the result
if (parameter is string param && param.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return !isNumeric;
}
return isNumeric;
}
// Default to showing TextBox (inverted result)
if (parameter is string param2 && param2.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return true;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type is neither Color nor Numeric nor Boolean nor Enum (for fallback TextBox)
/// </summary>
public class IsOtherTypeConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
bool isColor = type == typeof(Media.Color);
bool isNumeric = type == typeof(int) || type == typeof(long) || type == typeof(short) ||
type == typeof(byte) || type == typeof(uint) || type == typeof(ulong) ||
type == typeof(ushort) || type == typeof(sbyte) ||
type == typeof(float) || type == typeof(double) || type == typeof(decimal);
bool isBool = type == typeof(bool);
bool isEnum = type.IsEnum;
// Return true if it's neither color nor numeric nor boolean nor enum
return !isColor && !isNumeric && !isBool && !isEnum;
}
return true; // Default to showing TextBox
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
/// <summary>
/// Checks if a type is boolean
/// </summary>
public class IsBooleanTypeConverter : IValueConverter
{
public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
{
if (value is Type type)
{
bool isBool = type == typeof(bool);
// Support inverting the result
if (parameter is string param && param.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return !isBool;
}
return isBool;
}
// Default to showing TextBox (inverted result)
if (parameter is string param2 && param2.Equals("Invert", StringComparison.OrdinalIgnoreCase))
{
return true;
}
return false;
}
public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
@@ -0,0 +1,92 @@
using System;
using System.Collections.Generic;
using Avalonia.PropertyGrid.Models;
namespace Avalonia.PropertyGrid.Editors;
/// <summary>
/// Registry for custom property editors
/// </summary>
public static class EditorRegistry
{
private static readonly Dictionary<Type, Type> _typeEditors = new();
private static readonly Dictionary<string, Type> _propertyEditors = new();
/// <summary>
/// Register a custom editor for a specific type
/// </summary>
public static void RegisterEditor(Type propertyType, Type editorType)
{
if (!typeof(PropertyEditor).IsAssignableFrom(editorType))
{
throw new ArgumentException($"Editor type must inherit from PropertyEditor", nameof(editorType));
}
_typeEditors[propertyType] = editorType;
}
/// <summary>
/// Register a custom editor for a specific property by name
/// </summary>
public static void RegisterEditor(string propertyName, Type editorType)
{
if (!typeof(PropertyEditor).IsAssignableFrom(editorType))
{
throw new ArgumentException($"Editor type must inherit from PropertyEditor", nameof(editorType));
}
_propertyEditors[propertyName] = editorType;
}
/// <summary>
/// Get the editor type for a property item
/// </summary>
public static Type? GetEditorType(PropertyItem item)
{
// Check for explicit editor type on the item
if (item.EditorType != null)
{
return item.EditorType;
}
// Check for property-specific editor
if (_propertyEditors.TryGetValue(item.Name, out var propertyEditor))
{
return propertyEditor;
}
// Check for type-specific editor
if (_typeEditors.TryGetValue(item.PropertyType, out var typeEditor))
{
return typeEditor;
}
// Return default editor based on type
return GetDefaultEditorType(item.PropertyType);
}
private static Type? GetDefaultEditorType(Type propertyType)
{
if (propertyType == typeof(string))
return typeof(StringEditor);
if (propertyType == typeof(bool))
return typeof(BooleanEditor);
if (propertyType == typeof(int) || propertyType == typeof(long) ||
propertyType == typeof(short) || propertyType == typeof(byte) ||
propertyType == typeof(uint) || propertyType == typeof(ulong) ||
propertyType == typeof(ushort) || propertyType == typeof(sbyte) ||
propertyType == typeof(float) || propertyType == typeof(double) ||
propertyType == typeof(decimal))
return typeof(NumericEditor);
if (propertyType.IsEnum)
return typeof(EnumEditor);
if (propertyType == typeof(DateTime))
return typeof(DateTimeEditor);
return null; // Will use default TextBox
}
}
@@ -0,0 +1,288 @@
using System;
using Avalonia.Controls;
using Avalonia.Controls.Primitives;
using Avalonia.PropertyGrid.Models;
namespace Avalonia.PropertyGrid.Editors;
/// <summary>
/// Base class for property editors
/// </summary>
public abstract class PropertyEditor : ContentControl
{
/// <summary>
/// Defines the PropertyItem property.
/// </summary>
public static readonly StyledProperty<PropertyItem?> PropertyItemProperty =
AvaloniaProperty.Register<PropertyEditor, PropertyItem?>(nameof(PropertyItem));
/// <summary>
/// Gets or sets the property item being edited.
/// </summary>
public PropertyItem? PropertyItem
{
get => GetValue(PropertyItemProperty);
set => SetValue(PropertyItemProperty, value);
}
/// <summary>
/// Called when the PropertyItem changes.
/// </summary>
protected virtual void OnPropertyItemChanged(PropertyItem? oldValue, PropertyItem? newValue)
{
if (oldValue != null)
{
UnbindFromProperty(oldValue);
}
if (newValue != null)
{
BindToProperty(newValue);
}
}
/// <summary>
/// Binds the editor to the property item.
/// </summary>
protected abstract void BindToProperty(PropertyItem item);
/// <summary>
/// Unbinds the editor from the property item.
/// </summary>
protected abstract void UnbindFromProperty(PropertyItem item);
}
/// <summary>
/// Editor for string properties
/// </summary>
public class StringEditor : PropertyEditor
{
private TextBox? _textBox;
/// <inheritdoc/>
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_textBox = new TextBox();
Content = _textBox;
}
/// <inheritdoc/>
protected override void BindToProperty(PropertyItem item)
{
if (_textBox != null)
{
_textBox.Bind(TextBox.TextProperty,
new Avalonia.Data.Binding(nameof(PropertyItem.Value))
{
Source = item,
Mode = Avalonia.Data.BindingMode.TwoWay
});
_textBox.IsReadOnly = item.IsReadOnly;
}
}
/// <inheritdoc/>
protected override void UnbindFromProperty(PropertyItem item)
{
_textBox?.ClearValue(TextBox.TextProperty);
}
}
/// <summary>
/// Editor for numeric properties
/// </summary>
public class NumericEditor : PropertyEditor
{
private NumericUpDown? _numericUpDown;
/// <inheritdoc/>
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_numericUpDown = new NumericUpDown
{
Increment = 1,
FormatString = "0.##"
};
Content = _numericUpDown;
}
/// <inheritdoc/>
protected override void BindToProperty(PropertyItem item)
{
if (_numericUpDown != null)
{
_numericUpDown.Bind(NumericUpDown.ValueProperty,
new Avalonia.Data.Binding(nameof(PropertyItem.Value))
{
Source = item,
Mode = Avalonia.Data.BindingMode.TwoWay
});
_numericUpDown.IsReadOnly = item.IsReadOnly;
// Adjust increment based on type
if (item.PropertyType == typeof(int) || item.PropertyType == typeof(long))
{
_numericUpDown.Increment = 1;
_numericUpDown.FormatString = "0";
}
else if (item.PropertyType == typeof(double) || item.PropertyType == typeof(float))
{
_numericUpDown.Increment = 0.1m;
_numericUpDown.FormatString = "0.00";
}
}
}
/// <inheritdoc/>
protected override void UnbindFromProperty(PropertyItem item)
{
_numericUpDown?.ClearValue(NumericUpDown.ValueProperty);
}
}
/// <summary>
/// Editor for boolean properties
/// </summary>
public class BooleanEditor : PropertyEditor
{
private CheckBox? _checkBox;
/// <inheritdoc/>
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_checkBox = new CheckBox
{
HorizontalAlignment = Layout.HorizontalAlignment.Left
};
Content = _checkBox;
}
/// <inheritdoc/>
protected override void BindToProperty(PropertyItem item)
{
if (_checkBox != null)
{
_checkBox.Bind(CheckBox.IsCheckedProperty,
new Avalonia.Data.Binding(nameof(PropertyItem.Value))
{
Source = item,
Mode = Avalonia.Data.BindingMode.TwoWay
});
_checkBox.IsEnabled = !item.IsReadOnly;
}
}
/// <inheritdoc/>
protected override void UnbindFromProperty(PropertyItem item)
{
_checkBox?.ClearValue(CheckBox.IsCheckedProperty);
}
}
/// <summary>
/// Editor for enum properties
/// </summary>
public class EnumEditor : PropertyEditor
{
private ComboBox? _comboBox;
/// <inheritdoc/>
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_comboBox = new ComboBox();
Content = _comboBox;
}
/// <inheritdoc/>
protected override void BindToProperty(PropertyItem item)
{
if (_comboBox != null && item.PropertyType.IsEnum)
{
_comboBox.ItemsSource = Enum.GetValues(item.PropertyType);
_comboBox.Bind(ComboBox.SelectedItemProperty,
new Avalonia.Data.Binding(nameof(PropertyItem.Value))
{
Source = item,
Mode = Avalonia.Data.BindingMode.TwoWay
});
_comboBox.IsEnabled = !item.IsReadOnly;
}
}
/// <inheritdoc/>
protected override void UnbindFromProperty(PropertyItem item)
{
_comboBox?.ClearValue(ComboBox.SelectedItemProperty);
}
}
/// <summary>
/// Editor for DateTime properties
/// </summary>
public class DateTimeEditor : PropertyEditor
{
private DatePicker? _datePicker;
/// <inheritdoc/>
protected override void OnApplyTemplate(TemplateAppliedEventArgs e)
{
base.OnApplyTemplate(e);
_datePicker = new DatePicker();
Content = _datePicker;
}
/// <inheritdoc/>
protected override void BindToProperty(PropertyItem item)
{
if (_datePicker != null)
{
_datePicker.Bind(DatePicker.SelectedDateProperty,
new Avalonia.Data.Binding(nameof(PropertyItem.Value))
{
Source = item,
Mode = Avalonia.Data.BindingMode.TwoWay,
Converter = new DateTimeToDateTimeOffsetConverter()
});
_datePicker.IsEnabled = !item.IsReadOnly;
}
}
/// <inheritdoc/>
protected override void UnbindFromProperty(PropertyItem item)
{
_datePicker?.ClearValue(DatePicker.SelectedDateProperty);
}
}
/// <summary>
/// Converter for DateTime to DateTimeOffset
/// </summary>
internal class DateTimeToDateTimeOffsetConverter : Avalonia.Data.Converters.IValueConverter
{
public object? Convert(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime dt)
{
return new DateTimeOffset(dt);
}
return null;
}
public object? ConvertBack(object? value, Type targetType, object? parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTimeOffset dto)
{
return dto.DateTime;
}
return null;
}
}
@@ -0,0 +1,54 @@
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace Avalonia.PropertyGrid.Models;
/// <summary>
/// Represents a category group in the PropertyGrid
/// </summary>
public class CategoryGroup : INotifyPropertyChanged
{
private bool _isExpanded = true;
/// <summary>
/// Occurs when a property value changes.
/// </summary>
public event PropertyChangedEventHandler? PropertyChanged;
/// <summary>
/// The category name
/// </summary>
public string CategoryName { get; set; } = string.Empty;
/// <summary>
/// Properties in this category
/// </summary>
public ObservableCollection<PropertyItem> Properties { get; set; } = new();
/// <summary>
/// Whether the category is expanded
/// </summary>
public bool IsExpanded
{
get => _isExpanded;
set
{
if (_isExpanded != value)
{
_isExpanded = value;
OnPropertyChanged(nameof(IsExpanded));
}
}
}
/// <summary>
/// Number of properties in this category
/// </summary>
public int PropertyCount => Properties.Count;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
@@ -0,0 +1,54 @@
using System.Collections.Generic;
using System.Linq;
namespace Avalonia.PropertyGrid.Models;
/// <summary>
/// Represents a category group of properties
/// </summary>
public class PropertyCategory
{
/// <summary>
/// Gets or sets the category name.
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// Gets or sets the list of properties in this category.
/// </summary>
public List<PropertyItem> Properties { get; set; } = new();
/// <summary>
/// Gets or sets whether the category is expanded in the UI.
/// </summary>
public bool IsExpanded { get; set; } = true;
/// <summary>
/// Gets or sets the display order of the category.
/// </summary>
public int Order { get; set; }
}
/// <summary>
/// Helper for grouping properties by category
/// </summary>
public static class PropertyCategoryHelper
{
/// <summary>
/// Groups a list of properties by their category.
/// </summary>
public static List<PropertyCategory> GroupByCategory(List<PropertyItem> properties)
{
return properties.GroupBy(p => p.Category)
.Select(g => new PropertyCategory
{
Name = g.Key,
Properties = g.ToList(),
IsExpanded = true,
Order = g.Min(p => p.Order)
})
.OrderBy(c => c.Order)
.ThenBy(c => c.Name)
.ToList();
}
}
@@ -0,0 +1,311 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Globalization;
using System.Reflection;
namespace Avalonia.PropertyGrid.Models;
/// <summary>
/// Represents a single property item in the PropertyGrid
/// </summary>
public class PropertyItem : INotifyPropertyChanged
{
private object? _value;
private bool _isExpanded;
/// <summary>
/// Occurs when a property value changes.
/// </summary>
public event PropertyChangedEventHandler? PropertyChanged;
/// <summary>
/// The property name displayed in the grid
/// </summary>
public string Name { get; set; } = string.Empty;
/// <summary>
/// The display name (from DisplayAttribute or DisplayNameAttribute)
/// </summary>
public string DisplayName { get; set; } = string.Empty;
/// <summary>
/// The property description
/// </summary>
public string? Description { get; set; }
/// <summary>
/// The category this property belongs to
/// </summary>
public string Category { get; set; } = "Misc";
/// <summary>
/// The property value
/// </summary>
public object? Value
{
get => _value;
set
{
if (_value != value)
{
_value = value;
OnPropertyChanged(nameof(Value));
OnPropertyChanged(nameof(ValueString));
OnPropertyChanged(nameof(NumericValue));
OnPropertyChanged(nameof(ColorValue));
OnPropertyChanged(nameof(BooleanValue));
// Update the actual object property
if (PropertyInfo != null && Instance != null)
{
try
{
PropertyInfo.SetValue(Instance, value);
}
catch
{
// Ignore errors during setting
}
}
}
}
}
/// <summary>
/// Numeric value for NumericUpDown binding (converts to/from decimal)
/// </summary>
public decimal NumericValue
{
get
{
if (Value == null) return 0;
try
{
return Convert.ToDecimal(Value, CultureInfo.InvariantCulture);
}
catch
{
return 0;
}
}
set
{
try
{
// Convert decimal to the actual property type
object? converted = null;
if (PropertyType == typeof(int)) converted = (int)value;
else if (PropertyType == typeof(long)) converted = (long)value;
else if (PropertyType == typeof(short)) converted = (short)value;
else if (PropertyType == typeof(byte)) converted = (byte)value;
else if (PropertyType == typeof(uint)) converted = (uint)value;
else if (PropertyType == typeof(ulong)) converted = (ulong)value;
else if (PropertyType == typeof(ushort)) converted = (ushort)value;
else if (PropertyType == typeof(sbyte)) converted = (sbyte)value;
else if (PropertyType == typeof(float)) converted = (float)value;
else if (PropertyType == typeof(double)) converted = (double)value;
else if (PropertyType == typeof(decimal)) converted = value;
if (converted != null)
{
Value = converted;
}
}
catch
{
// Ignore conversion errors
}
}
}
/// <summary>
/// Color value for ColorPicker binding
/// </summary>
public Media.Color ColorValue
{
get
{
if (Value is Media.Color color)
{
System.Diagnostics.Debug.WriteLine($"ColorValue getter: returning {color}");
return color;
}
System.Diagnostics.Debug.WriteLine($"ColorValue getter: Value is not Color (is {Value?.GetType().Name ?? "null"}), returning Black");
return Media.Colors.Black;
}
set
{
System.Diagnostics.Debug.WriteLine($"ColorValue setter: setting to {value}");
Value = value;
}
}
/// <summary>
/// Boolean value for RadioButton binding
/// </summary>
public bool BooleanValue
{
get
{
if (Value is bool boolVal)
{
return boolVal;
}
return false;
}
set
{
Value = value;
}
}
/// <summary>
/// String representation of the value for display
/// </summary>
public string ValueString
{
get
{
if (Value is Media.Color color)
{
return $"#{color.A:X2}{color.R:X2}{color.G:X2}{color.B:X2}";
}
return Value?.ToString() ?? string.Empty;
}
set
{
// Try to parse as color if the property type is Color
if (PropertyType == typeof(Media.Color))
{
try
{
var hexString = value?.Trim() ?? "";
if (!hexString.StartsWith("#"))
hexString = "#" + hexString;
Value = Media.Color.Parse(hexString);
}
catch
{
// If parsing fails, ignore
}
}
else
{
// For other types, try to convert the string to the property type
try
{
if (!string.IsNullOrEmpty(value))
{
Value = Convert.ChangeType(value, PropertyType, CultureInfo.InvariantCulture);
}
}
catch
{
// If conversion fails, ignore
}
}
}
}
/// <summary>
/// The property type
/// </summary>
public Type PropertyType { get; set; } = typeof(object);
/// <summary>
/// Whether the property is read-only
/// </summary>
public bool IsReadOnly { get; set; }
/// <summary>
/// Whether the property is browsable (visible)
/// </summary>
public bool IsBrowsable { get; set; } = true;
/// <summary>
/// Whether the property is expandable (has sub-properties)
/// </summary>
public bool IsExpandable { get; set; }
/// <summary>
/// Whether the property is currently expanded
/// </summary>
public bool IsExpanded
{
get => _isExpanded;
set
{
if (_isExpanded != value)
{
_isExpanded = value;
OnPropertyChanged(nameof(IsExpanded));
}
}
}
/// <summary>
/// Child properties (for complex types)
/// </summary>
public List<PropertyItem> Children { get; set; } = new();
/// <summary>
/// The PropertyInfo reflection object
/// </summary>
public PropertyInfo? PropertyInfo { get; set; }
/// <summary>
/// The object instance this property belongs to
/// </summary>
public object? Instance { get; set; }
/// <summary>
/// Custom editor type for this property
/// </summary>
public Type? EditorType { get; set; }
/// <summary>
/// The indentation level (for nested properties)
/// </summary>
public int IndentLevel { get; set; }
/// <summary>
/// Custom converter for this property
/// </summary>
public TypeConverter? Converter { get; set; }
/// <summary>
/// Order/priority for display
/// </summary>
public int Order { get; set; }
/// <summary>
/// Raises the PropertyChanged event.
/// </summary>
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
/// <summary>
/// Refreshes the value from the source instance
/// </summary>
public void RefreshValue()
{
if (PropertyInfo != null && Instance != null)
{
try
{
_value = PropertyInfo.GetValue(Instance);
OnPropertyChanged(nameof(Value));
OnPropertyChanged(nameof(ValueString));
}
catch
{
// Ignore errors during refresh
}
}
}
}
@@ -0,0 +1,252 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Reflection;
using Avalonia.PropertyGrid.Models;
namespace Avalonia.PropertyGrid.Services;
/// <summary>
/// Service for creating PropertyItem collections from objects
/// </summary>
public class PropertyItemFactory
{
private static readonly HashSet<Type> SimpleTypes = new()
{
typeof(string), typeof(int), typeof(long), typeof(short), typeof(byte),
typeof(uint), typeof(ulong), typeof(ushort), typeof(sbyte),
typeof(float), typeof(double), typeof(decimal),
typeof(bool), typeof(char), typeof(DateTime), typeof(DateTimeOffset),
typeof(TimeSpan), typeof(Guid)
};
/// <summary>
/// Creates a collection of PropertyItems from an object
/// </summary>
public static List<PropertyItem> CreatePropertyItems(object? obj, int indentLevel = 0)
{
if (obj == null)
return new List<PropertyItem>();
var properties = new List<PropertyItem>();
var type = obj.GetType();
// Check if this is a collection (but not a string or dictionary)
if (IsCollection(obj))
{
return CreateCollectionItems(obj, indentLevel);
}
foreach (var prop in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
{
// Skip indexed properties
if (prop.GetIndexParameters().Length > 0)
continue;
var item = CreatePropertyItem(obj, prop, indentLevel);
if (item != null && item.IsBrowsable)
{
properties.Add(item);
}
}
// Sort by order, then by category, then by name
return properties.OrderBy(p => p.Order)
.ThenBy(p => p.Category)
.ThenBy(p => p.DisplayName)
.ToList();
}
/// <summary>
/// Creates PropertyItems for collection elements
/// </summary>
private static List<PropertyItem> CreateCollectionItems(object collection, int indentLevel)
{
var items = new List<PropertyItem>();
if (collection is System.Collections.IEnumerable enumerable)
{
int index = 0;
foreach (var element in enumerable)
{
if (element == null)
{
index++;
continue;
}
var elementType = element.GetType();
var isSimple = IsSimpleType(elementType);
// For simple types, show the value in the display name
string displayName = $"[{index}]";
if (isSimple || elementType == typeof(string))
{
var valueStr = element.ToString();
if (!string.IsNullOrEmpty(valueStr) && valueStr.Length <= 50)
{
displayName = $"[{index}] = {valueStr}";
}
}
var item = new PropertyItem
{
Name = $"[{index}]",
DisplayName = displayName,
Description = $"Item at index {index}",
Category = "Items",
PropertyType = elementType,
IsReadOnly = true, // Collection items are read-only for now
Instance = collection,
IndentLevel = indentLevel,
Value = element,
Converter = TypeDescriptor.GetConverter(elementType),
Order = index,
IsBrowsable = true,
IsExpandable = !isSimple && elementType.IsClass && elementType != typeof(string)
};
items.Add(item);
index++;
}
}
return items;
}
/// <summary>
/// Checks if an object is a collection (excluding strings and dictionaries)
/// </summary>
private static bool IsCollection(object obj)
{
if (obj == null)
return false;
var type = obj.GetType();
// Exclude strings and dictionaries
if (type == typeof(string))
return false;
if (typeof(System.Collections.IDictionary).IsAssignableFrom(type))
return false;
// Check if it implements IEnumerable
return typeof(System.Collections.IEnumerable).IsAssignableFrom(type);
}
/// <summary>
/// Creates a single PropertyItem from a PropertyInfo
/// </summary>
public static PropertyItem? CreatePropertyItem(object instance, PropertyInfo propertyInfo, int indentLevel = 0)
{
// Check if browsable
var browsableAttr = propertyInfo.GetCustomAttribute<BrowsableAttribute>();
if (browsableAttr != null && !browsableAttr.Browsable)
return null;
var item = new PropertyItem
{
Name = propertyInfo.Name,
DisplayName = GetDisplayName(propertyInfo),
Description = GetDescription(propertyInfo),
Category = GetCategory(propertyInfo),
PropertyType = propertyInfo.PropertyType,
IsReadOnly = !propertyInfo.CanWrite || propertyInfo.GetCustomAttribute<ReadOnlyAttribute>()?.IsReadOnly == true,
PropertyInfo = propertyInfo,
Instance = instance,
IndentLevel = indentLevel,
Converter = TypeDescriptor.GetConverter(propertyInfo.PropertyType),
Order = GetOrder(propertyInfo),
IsBrowsable = true
};
// Get the current value
try
{
item.Value = propertyInfo.GetValue(instance);
}
catch
{
item.Value = null;
}
// Check if expandable (complex type)
var propType = propertyInfo.PropertyType;
item.IsExpandable = !IsSimpleType(propType) && propType.IsClass && propType != typeof(string);
return item;
}
private static string GetDisplayName(PropertyInfo prop)
{
var displayAttr = prop.GetCustomAttribute<DisplayAttribute>();
if (displayAttr?.Name != null)
return displayAttr.Name;
var displayNameAttr = prop.GetCustomAttribute<DisplayNameAttribute>();
if (displayNameAttr?.DisplayName != null)
return displayNameAttr.DisplayName;
// Add spaces before capital letters
return AddSpacesToCamelCase(prop.Name);
}
private static string? GetDescription(PropertyInfo prop)
{
var displayAttr = prop.GetCustomAttribute<DisplayAttribute>();
if (displayAttr?.Description != null)
return displayAttr.Description;
var descriptionAttr = prop.GetCustomAttribute<DescriptionAttribute>();
return descriptionAttr?.Description;
}
private static string GetCategory(PropertyInfo prop)
{
var categoryAttr = prop.GetCustomAttribute<CategoryAttribute>();
if (categoryAttr?.Category != null && categoryAttr.Category != CategoryAttribute.Default.Category)
return categoryAttr.Category;
var displayAttr = prop.GetCustomAttribute<DisplayAttribute>();
if (displayAttr?.GroupName != null)
return displayAttr.GroupName;
return "Misc";
}
private static int GetOrder(PropertyInfo prop)
{
var displayAttr = prop.GetCustomAttribute<DisplayAttribute>();
return displayAttr?.GetOrder() ?? int.MaxValue;
}
private static bool IsSimpleType(Type type)
{
type = Nullable.GetUnderlyingType(type) ?? type;
return SimpleTypes.Contains(type) || type.IsEnum;
}
private static string AddSpacesToCamelCase(string text)
{
if (string.IsNullOrWhiteSpace(text))
return string.Empty;
var result = new System.Text.StringBuilder();
result.Append(text[0]);
for (int i = 1; i < text.Length; i++)
{
if (char.IsUpper(text[i]) && !char.IsUpper(text[i - 1]))
{
result.Append(' ');
}
result.Append(text[i]);
}
return result.ToString();
}
}
@@ -0,0 +1,154 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"Avalonia.PropertyGrid/1.0.0": {
"dependencies": {
"Avalonia": "12.1.0",
"Avalonia.Controls.ColorPicker": "12.1.0",
"Avalonia.Themes.Fluent": "12.1.0"
},
"runtime": {
"Avalonia.PropertyGrid.dll": {}
}
},
"Avalonia/12.1.0": {
"dependencies": {
"Avalonia.Remote.Protocol": "12.1.0",
"MicroCom.Runtime": "0.11.6"
},
"runtime": {
"lib/net10.0/Avalonia.Base.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.Controls.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.DesignerSupport.dll": {
"assemblyVersion": "0.7.0.0",
"fileVersion": "0.7.0.0"
},
"lib/net10.0/Avalonia.Dialogs.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.Markup.Xaml.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.Markup.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.Metal.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.MicroCom.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.OpenGL.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.Vulkan.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
},
"lib/net10.0/Avalonia.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
}
}
},
"Avalonia.Controls.ColorPicker/12.1.0": {
"dependencies": {
"Avalonia": "12.1.0",
"Avalonia.Remote.Protocol": "12.1.0"
},
"runtime": {
"lib/net10.0/Avalonia.Controls.ColorPicker.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
}
}
},
"Avalonia.Remote.Protocol/12.1.0": {
"runtime": {
"lib/net10.0/Avalonia.Remote.Protocol.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
}
}
},
"Avalonia.Themes.Fluent/12.1.0": {
"dependencies": {
"Avalonia": "12.1.0"
},
"runtime": {
"lib/net10.0/Avalonia.Themes.Fluent.dll": {
"assemblyVersion": "12.1.0.0",
"fileVersion": "12.1.0.0"
}
}
},
"MicroCom.Runtime/0.11.6": {
"runtime": {
"lib/net8.0/MicroCom.Runtime.dll": {
"assemblyVersion": "0.11.6.0",
"fileVersion": "0.11.6.0"
}
}
}
}
},
"libraries": {
"Avalonia.PropertyGrid/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Avalonia/12.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-an4ugAy2q6GTdaFl635V8W/LKrWNL+mnSFUprbgyf8m1Zzf9WgoGaF5ajGv5i4gXefMZrzsUPV1QU+kKrgwCWg==",
"path": "avalonia/12.1.0",
"hashPath": "avalonia.12.1.0.nupkg.sha512"
},
"Avalonia.Controls.ColorPicker/12.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-5ye5pHOKNSPh/lqQlQ/Z4rKwTjzjCGqlWseycjAuJp4DjyDR2ZH1mt3GBgL7K/y1Th+Gxu+LfM9IqIe6UqlxFA==",
"path": "avalonia.controls.colorpicker/12.1.0",
"hashPath": "avalonia.controls.colorpicker.12.1.0.nupkg.sha512"
},
"Avalonia.Remote.Protocol/12.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-p6OKt6O7vOub4TS2pAjaeW0Y13oxrPs4uixeVZpJByiSQKKk+LyApN5yRy2JerpfTMtI86Y5pNwugyKTHZJnAw==",
"path": "avalonia.remote.protocol/12.1.0",
"hashPath": "avalonia.remote.protocol.12.1.0.nupkg.sha512"
},
"Avalonia.Themes.Fluent/12.1.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-MVi5L9HymnNm+gP2aNXNcyrP2iKGJWFubQ5Bv8/Przflxca1aIT9QBpTUV6c3olA9rLYFY7MJRR/C/BZaUhemQ==",
"path": "avalonia.themes.fluent/12.1.0",
"hashPath": "avalonia.themes.fluent.12.1.0.nupkg.sha512"
},
"MicroCom.Runtime/0.11.6": {
"type": "package",
"serviceable": true,
"sha512": "sha512-NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ==",
"path": "microcom.runtime/0.11.6",
"hashPath": "microcom.runtime.0.11.6.nupkg.sha512"
}
}
}
@@ -0,0 +1,513 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Avalonia.PropertyGrid</name>
</assembly>
<members>
<member name="T:Avalonia.PropertyGrid.Controls.PropertyGrid">
<summary>
A PropertyGrid control for editing object properties with Xceed-like functionality
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.SelectedObjectProperty">
<summary>
Defines the SelectedObject property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.SearchTextProperty">
<summary>
Defines the SearchText property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowCategoriesProperty">
<summary>
Defines the ShowCategories property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowDescriptionsProperty">
<summary>
Defines the ShowDescriptions property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.FilteredPropertiesProperty">
<summary>
Defines the FilteredProperties property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.CategoryGroupsProperty">
<summary>
Defines the CategoryGroups property.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.#ctor">
<summary>
Initializes a new instance of the PropertyGrid class.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.SelectedObject">
<summary>
The object whose properties are being edited
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.SearchText">
<summary>
The search/filter text
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowCategories">
<summary>
Whether to show properties grouped by categories
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowDescriptions">
<summary>
Whether to show property descriptions
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.FilteredProperties">
<summary>
The filtered list of properties to display
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.CategoryGroups">
<summary>
The category groups to display
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.RefreshProperties">
<summary>
Refreshes the property list from the selected object
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.RefreshValues">
<summary>
Refreshes all property values from the source object
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.ColorToBrushConverter">
<summary>
Converts an Avalonia.Media.Color to a SolidColorBrush
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.NegateBoolConverter">
<summary>
Converts boolean value to its negation for two-way binding
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.NumericFormatConverter">
<summary>
Converts PropertyType to appropriate numeric format string
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IndentToMarginConverter">
<summary>
Converts indent level to left margin
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.IndentToMarginConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Converts indent level to left margin.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.IndentToMarginConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Not implemented.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.EnumValuesConverter">
<summary>
Converts enum type to list of enum values
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.EnumValuesConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Converts an enum type to an array of its values.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.EnumValuesConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Not implemented.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsEnumConverter">
<summary>
Checks if a type is an enum
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsSimpleTypeConverter">
<summary>
Checks if a type is a simple type (string, number, bool, etc.)
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.TypeToBoolConverter">
<summary>
Checks if a type matches the specified type name
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.ColorToStringConverter">
<summary>
Converts Color to/from hex string representation
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsColorTypeConverter">
<summary>
Checks if a type is Color
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsNumericTypeConverter">
<summary>
Checks if a type is numeric
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsOtherTypeConverter">
<summary>
Checks if a type is neither Color nor Numeric nor Boolean nor Enum (for fallback TextBox)
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsBooleanTypeConverter">
<summary>
Checks if a type is boolean
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.EditorRegistry">
<summary>
Registry for custom property editors
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.RegisterEditor(System.Type,System.Type)">
<summary>
Register a custom editor for a specific type
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.RegisterEditor(System.String,System.Type)">
<summary>
Register a custom editor for a specific property by name
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.GetEditorType(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Get the editor type for a property item
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.PropertyEditor">
<summary>
Base class for property editors
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Editors.PropertyEditor.PropertyItemProperty">
<summary>
Defines the PropertyItem property.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Editors.PropertyEditor.PropertyItem">
<summary>
Gets or sets the property item being edited.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.OnPropertyItemChanged(Avalonia.PropertyGrid.Models.PropertyItem,Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Called when the PropertyItem changes.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Binds the editor to the property item.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Unbinds the editor from the property item.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.StringEditor">
<summary>
Editor for string properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.NumericEditor">
<summary>
Editor for numeric properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.BooleanEditor">
<summary>
Editor for boolean properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.EnumEditor">
<summary>
Editor for enum properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.DateTimeEditor">
<summary>
Editor for DateTime properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.DateTimeToDateTimeOffsetConverter">
<summary>
Converter for DateTime to DateTimeOffset
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.CategoryGroup">
<summary>
Represents a category group in the PropertyGrid
</summary>
</member>
<member name="E:Avalonia.PropertyGrid.Models.CategoryGroup.PropertyChanged">
<summary>
Occurs when a property value changes.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.CategoryName">
<summary>
The category name
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.Properties">
<summary>
Properties in this category
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.IsExpanded">
<summary>
Whether the category is expanded
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.PropertyCount">
<summary>
Number of properties in this category
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyCategory">
<summary>
Represents a category group of properties
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Name">
<summary>
Gets or sets the category name.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Properties">
<summary>
Gets or sets the list of properties in this category.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.IsExpanded">
<summary>
Gets or sets whether the category is expanded in the UI.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Order">
<summary>
Gets or sets the display order of the category.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyCategoryHelper">
<summary>
Helper for grouping properties by category
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyCategoryHelper.GroupByCategory(System.Collections.Generic.List{Avalonia.PropertyGrid.Models.PropertyItem})">
<summary>
Groups a list of properties by their category.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyItem">
<summary>
Represents a single property item in the PropertyGrid
</summary>
</member>
<member name="E:Avalonia.PropertyGrid.Models.PropertyItem.PropertyChanged">
<summary>
Occurs when a property value changes.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Name">
<summary>
The property name displayed in the grid
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.DisplayName">
<summary>
The display name (from DisplayAttribute or DisplayNameAttribute)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Description">
<summary>
The property description
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Category">
<summary>
The category this property belongs to
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Value">
<summary>
The property value
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.NumericValue">
<summary>
Numeric value for NumericUpDown binding (converts to/from decimal)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.ColorValue">
<summary>
Color value for ColorPicker binding
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.BooleanValue">
<summary>
Boolean value for RadioButton binding
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.ValueString">
<summary>
String representation of the value for display
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.PropertyType">
<summary>
The property type
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsReadOnly">
<summary>
Whether the property is read-only
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsBrowsable">
<summary>
Whether the property is browsable (visible)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsExpandable">
<summary>
Whether the property is expandable (has sub-properties)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsExpanded">
<summary>
Whether the property is currently expanded
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Children">
<summary>
Child properties (for complex types)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.PropertyInfo">
<summary>
The PropertyInfo reflection object
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Instance">
<summary>
The object instance this property belongs to
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.EditorType">
<summary>
Custom editor type for this property
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IndentLevel">
<summary>
The indentation level (for nested properties)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Converter">
<summary>
Custom converter for this property
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Order">
<summary>
Order/priority for display
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyItem.OnPropertyChanged(System.String)">
<summary>
Raises the PropertyChanged event.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyItem.RefreshValue">
<summary>
Refreshes the value from the source instance
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Services.PropertyItemFactory">
<summary>
Service for creating PropertyItem collections from objects
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreatePropertyItems(System.Object,System.Int32)">
<summary>
Creates a collection of PropertyItems from an object
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreateCollectionItems(System.Object,System.Int32)">
<summary>
Creates PropertyItems for collection elements
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.IsCollection(System.Object)">
<summary>
Checks if an object is a collection (excluding strings and dictionaries)
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreatePropertyItem(System.Object,System.Reflection.PropertyInfo,System.Int32)">
<summary>
Creates a single PropertyItem from a PropertyInfo
</summary>
</member>
</members>
</doc>
@@ -0,0 +1,359 @@
{
"format": 1,
"restore": {
"C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj": {}
},
"projects": {
"C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj",
"projectName": "Avalonia.PropertyGrid",
"projectPath": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj",
"packagesPath": "C:\\Users\\heilm\\.nuget\\packages\\",
"outputPath": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\heilm\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net10.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0": {
"framework": "net10.0",
"targetAlias": "net10.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.300"
},
"frameworks": {
"net10.0": {
"framework": "net10.0",
"targetAlias": "net10.0",
"dependencies": {
"Avalonia": {
"target": "Package",
"version": "[12.1.0, )"
},
"Avalonia.Controls.ColorPicker": {
"target": "Package",
"version": "[12.1.0, )"
},
"Avalonia.Themes.Fluent": {
"target": "Package",
"version": "[12.1.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.302/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
}
}
}
}
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\heilm\.nuget\packages\</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">7.0.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\heilm\.nuget\packages\" />
</ItemGroup>
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)avalonia\12.1.0\buildTransitive\Avalonia.props" Condition="Exists('$(NuGetPackageRoot)avalonia\12.1.0\buildTransitive\Avalonia.props')" />
</ImportGroup>
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<PkgAvalonia_BuildServices Condition=" '$(PkgAvalonia_BuildServices)' == '' ">C:\Users\heilm\.nuget\packages\avalonia.buildservices\11.3.2</PkgAvalonia_BuildServices>
<PkgAvalonia Condition=" '$(PkgAvalonia)' == '' ">C:\Users\heilm\.nuget\packages\avalonia\12.1.0</PkgAvalonia>
</PropertyGroup>
</Project>
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<Import Project="$(NuGetPackageRoot)avalonia.buildservices\11.3.2\buildTransitive\Avalonia.BuildServices.targets" Condition="Exists('$(NuGetPackageRoot)avalonia.buildservices\11.3.2\buildTransitive\Avalonia.BuildServices.targets')" />
<Import Project="$(NuGetPackageRoot)avalonia\12.1.0\buildTransitive\Avalonia.targets" Condition="Exists('$(NuGetPackageRoot)avalonia\12.1.0\buildTransitive\Avalonia.targets')" />
</ImportGroup>
</Project>
@@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v10.0", FrameworkDisplayName = ".NET 10.0")]
@@ -0,0 +1,24 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("PropertyGrid Contributors")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyDescriptionAttribute("A powerful PropertyGrid control for Avalonia with Xceed-like functionality")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("Avalonia.PropertyGrid")]
[assembly: System.Reflection.AssemblyTitleAttribute("Avalonia.PropertyGrid")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.
@@ -0,0 +1 @@
7d97f2df694c860a8c781167bf954510eafc501ae570f3d60d4d535a401d02d5
@@ -0,0 +1,32 @@
is_global = true
build_property.AvaloniaNameGeneratorIsEnabled = true
build_property.AvaloniaNameGeneratorBehavior = InitializeComponent
build_property.AvaloniaNameGeneratorDefaultFieldModifier = internal
build_property.AvaloniaNameGeneratorFilterByPath = *
build_property.AvaloniaNameGeneratorFilterByNamespace = *
build_property.AvaloniaNameGeneratorViewFileNamingStrategy = NamespaceAndClassName
build_property.AvaloniaNameGeneratorAttachDevTools = true
build_property.AvaloniaUseCompiledBindingsByDefault = true
build_property.AvaloniaMainPackageVersion = 12.1.0
build_property.AvaloniaPreviewerNetCoreToolPath = C:\Users\heilm\.nuget\packages\avalonia\12.1.0\buildTransitive\\..\tools\net8.0\designer\Avalonia.Designer.HostApp.dll
build_property.AvaloniaResourcePaths = C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\Controls\PropertyGrid.axaml,C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\Controls\PropertyGrid.axaml
build_property.TargetFramework = net10.0
build_property.TargetFrameworkIdentifier = .NETCoreApp
build_property.TargetFrameworkVersion = v10.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property.EnforceExtendedAnalyzerRules =
build_property.EntryPointFilePath =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = Avalonia.PropertyGrid
build_property.ProjectDir = C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.EffectiveAnalysisLevelStyle = 10.0
build_property.EnableCodeStyleSeverity =
[C:/Users/heilm/OneDrive - Num Industry Alliance AG/Desktop/PropertyGridExample/Avalonia.PropertyGrid/Controls/PropertyGrid.axaml]
build_metadata.AdditionalFiles.SourceItemGroup = AvaloniaXaml
@@ -0,0 +1 @@
b2418c8898ccbb724fcc5b312ca79d0bc3c126ca6897632cc8acc89929747322
@@ -0,0 +1,16 @@
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\bin\Debug\net10.0\Avalonia.PropertyGrid.deps.json
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\bin\Debug\net10.0\Avalonia.PropertyGrid.dll
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\bin\Debug\net10.0\Avalonia.PropertyGrid.pdb
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\bin\Debug\net10.0\Avalonia.PropertyGrid.xml
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.csproj.AssemblyReference.cache
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia\Resources.Inputs.cache
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia\resources
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.AssemblyInfoInputs.cache
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.AssemblyInfo.cs
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.csproj.CoreCompileInputs.cache
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.dll
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\refint\Avalonia.PropertyGrid.dll
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.xml
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\Avalonia.PropertyGrid.pdb
C:\Users\heilm\OneDrive - Num Industry Alliance AG\Desktop\PropertyGridExample\Avalonia.PropertyGrid\obj\Debug\net10.0\ref\Avalonia.PropertyGrid.dll
@@ -0,0 +1,513 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Avalonia.PropertyGrid</name>
</assembly>
<members>
<member name="T:Avalonia.PropertyGrid.Controls.PropertyGrid">
<summary>
A PropertyGrid control for editing object properties with Xceed-like functionality
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.SelectedObjectProperty">
<summary>
Defines the SelectedObject property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.SearchTextProperty">
<summary>
Defines the SearchText property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowCategoriesProperty">
<summary>
Defines the ShowCategories property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowDescriptionsProperty">
<summary>
Defines the ShowDescriptions property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.FilteredPropertiesProperty">
<summary>
Defines the FilteredProperties property.
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Controls.PropertyGrid.CategoryGroupsProperty">
<summary>
Defines the CategoryGroups property.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.#ctor">
<summary>
Initializes a new instance of the PropertyGrid class.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.SelectedObject">
<summary>
The object whose properties are being edited
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.SearchText">
<summary>
The search/filter text
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowCategories">
<summary>
Whether to show properties grouped by categories
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.ShowDescriptions">
<summary>
Whether to show property descriptions
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.FilteredProperties">
<summary>
The filtered list of properties to display
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Controls.PropertyGrid.CategoryGroups">
<summary>
The category groups to display
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.RefreshProperties">
<summary>
Refreshes the property list from the selected object
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.PropertyGrid.RefreshValues">
<summary>
Refreshes all property values from the source object
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.ColorToBrushConverter">
<summary>
Converts an Avalonia.Media.Color to a SolidColorBrush
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.NegateBoolConverter">
<summary>
Converts boolean value to its negation for two-way binding
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.NumericFormatConverter">
<summary>
Converts PropertyType to appropriate numeric format string
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IndentToMarginConverter">
<summary>
Converts indent level to left margin
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.IndentToMarginConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Converts indent level to left margin.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.IndentToMarginConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Not implemented.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.EnumValuesConverter">
<summary>
Converts enum type to list of enum values
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.EnumValuesConverter.Convert(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Converts an enum type to an array of its values.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Controls.EnumValuesConverter.ConvertBack(System.Object,System.Type,System.Object,System.Globalization.CultureInfo)">
<summary>
Not implemented.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsEnumConverter">
<summary>
Checks if a type is an enum
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsSimpleTypeConverter">
<summary>
Checks if a type is a simple type (string, number, bool, etc.)
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.TypeToBoolConverter">
<summary>
Checks if a type matches the specified type name
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.ColorToStringConverter">
<summary>
Converts Color to/from hex string representation
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsColorTypeConverter">
<summary>
Checks if a type is Color
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsNumericTypeConverter">
<summary>
Checks if a type is numeric
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsOtherTypeConverter">
<summary>
Checks if a type is neither Color nor Numeric nor Boolean nor Enum (for fallback TextBox)
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Controls.IsBooleanTypeConverter">
<summary>
Checks if a type is boolean
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.EditorRegistry">
<summary>
Registry for custom property editors
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.RegisterEditor(System.Type,System.Type)">
<summary>
Register a custom editor for a specific type
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.RegisterEditor(System.String,System.Type)">
<summary>
Register a custom editor for a specific property by name
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EditorRegistry.GetEditorType(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Get the editor type for a property item
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.PropertyEditor">
<summary>
Base class for property editors
</summary>
</member>
<member name="F:Avalonia.PropertyGrid.Editors.PropertyEditor.PropertyItemProperty">
<summary>
Defines the PropertyItem property.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Editors.PropertyEditor.PropertyItem">
<summary>
Gets or sets the property item being edited.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.OnPropertyItemChanged(Avalonia.PropertyGrid.Models.PropertyItem,Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Called when the PropertyItem changes.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Binds the editor to the property item.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.PropertyEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<summary>
Unbinds the editor from the property item.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.StringEditor">
<summary>
Editor for string properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.StringEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.NumericEditor">
<summary>
Editor for numeric properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.NumericEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.BooleanEditor">
<summary>
Editor for boolean properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.BooleanEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.EnumEditor">
<summary>
Editor for enum properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.EnumEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.DateTimeEditor">
<summary>
Editor for DateTime properties
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.OnApplyTemplate(Avalonia.Controls.Primitives.TemplateAppliedEventArgs)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.BindToProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="M:Avalonia.PropertyGrid.Editors.DateTimeEditor.UnbindFromProperty(Avalonia.PropertyGrid.Models.PropertyItem)">
<inheritdoc/>
</member>
<member name="T:Avalonia.PropertyGrid.Editors.DateTimeToDateTimeOffsetConverter">
<summary>
Converter for DateTime to DateTimeOffset
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.CategoryGroup">
<summary>
Represents a category group in the PropertyGrid
</summary>
</member>
<member name="E:Avalonia.PropertyGrid.Models.CategoryGroup.PropertyChanged">
<summary>
Occurs when a property value changes.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.CategoryName">
<summary>
The category name
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.Properties">
<summary>
Properties in this category
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.IsExpanded">
<summary>
Whether the category is expanded
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.CategoryGroup.PropertyCount">
<summary>
Number of properties in this category
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyCategory">
<summary>
Represents a category group of properties
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Name">
<summary>
Gets or sets the category name.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Properties">
<summary>
Gets or sets the list of properties in this category.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.IsExpanded">
<summary>
Gets or sets whether the category is expanded in the UI.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyCategory.Order">
<summary>
Gets or sets the display order of the category.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyCategoryHelper">
<summary>
Helper for grouping properties by category
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyCategoryHelper.GroupByCategory(System.Collections.Generic.List{Avalonia.PropertyGrid.Models.PropertyItem})">
<summary>
Groups a list of properties by their category.
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Models.PropertyItem">
<summary>
Represents a single property item in the PropertyGrid
</summary>
</member>
<member name="E:Avalonia.PropertyGrid.Models.PropertyItem.PropertyChanged">
<summary>
Occurs when a property value changes.
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Name">
<summary>
The property name displayed in the grid
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.DisplayName">
<summary>
The display name (from DisplayAttribute or DisplayNameAttribute)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Description">
<summary>
The property description
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Category">
<summary>
The category this property belongs to
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Value">
<summary>
The property value
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.NumericValue">
<summary>
Numeric value for NumericUpDown binding (converts to/from decimal)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.ColorValue">
<summary>
Color value for ColorPicker binding
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.BooleanValue">
<summary>
Boolean value for RadioButton binding
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.ValueString">
<summary>
String representation of the value for display
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.PropertyType">
<summary>
The property type
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsReadOnly">
<summary>
Whether the property is read-only
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsBrowsable">
<summary>
Whether the property is browsable (visible)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsExpandable">
<summary>
Whether the property is expandable (has sub-properties)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IsExpanded">
<summary>
Whether the property is currently expanded
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Children">
<summary>
Child properties (for complex types)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.PropertyInfo">
<summary>
The PropertyInfo reflection object
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Instance">
<summary>
The object instance this property belongs to
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.EditorType">
<summary>
Custom editor type for this property
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.IndentLevel">
<summary>
The indentation level (for nested properties)
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Converter">
<summary>
Custom converter for this property
</summary>
</member>
<member name="P:Avalonia.PropertyGrid.Models.PropertyItem.Order">
<summary>
Order/priority for display
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyItem.OnPropertyChanged(System.String)">
<summary>
Raises the PropertyChanged event.
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Models.PropertyItem.RefreshValue">
<summary>
Refreshes the value from the source instance
</summary>
</member>
<member name="T:Avalonia.PropertyGrid.Services.PropertyItemFactory">
<summary>
Service for creating PropertyItem collections from objects
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreatePropertyItems(System.Object,System.Int32)">
<summary>
Creates a collection of PropertyItems from an object
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreateCollectionItems(System.Object,System.Int32)">
<summary>
Creates PropertyItems for collection elements
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.IsCollection(System.Object)">
<summary>
Checks if an object is a collection (excluding strings and dictionaries)
</summary>
</member>
<member name="M:Avalonia.PropertyGrid.Services.PropertyItemFactory.CreatePropertyItem(System.Object,System.Reflection.PropertyInfo,System.Int32)">
<summary>
Creates a single PropertyItem from a PropertyInfo
</summary>
</member>
</members>
</doc>
@@ -0,0 +1 @@
bd43341172bb73c900eca5cd1d055f1819d0d24de2228ab673b5661b8c6d1334
@@ -0,0 +1,182 @@
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Base.dll
C:\Users\heilm\.nuget\packages\avalonia.controls.colorpicker\12.1.0\lib\net10.0\Avalonia.Controls.ColorPicker.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Controls.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.DesignerSupport.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Dialogs.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Markup.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Markup.Xaml.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Metal.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.MicroCom.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.OpenGL.dll
C:\Users\heilm\.nuget\packages\avalonia.remote.protocol\12.1.0\lib\net10.0\Avalonia.Remote.Protocol.dll
C:\Users\heilm\.nuget\packages\avalonia.themes.fluent\12.1.0\lib\net10.0\Avalonia.Themes.Fluent.dll
C:\Users\heilm\.nuget\packages\avalonia\12.1.0\ref\net10.0\Avalonia.Vulkan.dll
C:\Users\heilm\.nuget\packages\microcom.runtime\0.11.6\lib\net8.0\MicroCom.Runtime.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\Microsoft.CSharp.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\Microsoft.VisualBasic.Core.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\Microsoft.VisualBasic.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\Microsoft.Win32.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\Microsoft.Win32.Registry.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\mscorlib.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\netstandard.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.AppContext.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Buffers.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Collections.Concurrent.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Collections.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Collections.Immutable.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Collections.NonGeneric.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Collections.Specialized.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.Annotations.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.DataAnnotations.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.EventBasedAsync.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ComponentModel.TypeConverter.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Configuration.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Console.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Core.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Data.Common.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Data.DataSetExtensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Data.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.Contracts.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.Debug.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.DiagnosticSource.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.FileVersionInfo.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.Process.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.StackTrace.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.TextWriterTraceListener.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.Tools.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.TraceSource.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Diagnostics.Tracing.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Drawing.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Drawing.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Dynamic.Runtime.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Formats.Asn1.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Formats.Tar.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Globalization.Calendars.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Globalization.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Globalization.Extensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Compression.Brotli.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Compression.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Compression.FileSystem.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Compression.ZipFile.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.FileSystem.AccessControl.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.FileSystem.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.FileSystem.DriveInfo.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.FileSystem.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.FileSystem.Watcher.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.IsolatedStorage.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.MemoryMappedFiles.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Pipelines.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Pipes.AccessControl.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.Pipes.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.IO.UnmanagedMemoryStream.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Linq.AsyncEnumerable.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Linq.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Linq.Expressions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Linq.Parallel.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Linq.Queryable.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Memory.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Http.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Http.Json.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.HttpListener.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Mail.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.NameResolution.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.NetworkInformation.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Ping.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Quic.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Requests.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Security.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.ServerSentEvents.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.ServicePoint.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.Sockets.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.WebClient.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.WebHeaderCollection.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.WebProxy.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.WebSockets.Client.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Net.WebSockets.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Numerics.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Numerics.Vectors.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ObjectModel.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.DispatchProxy.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Emit.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Emit.ILGeneration.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Emit.Lightweight.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Extensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Metadata.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Reflection.TypeExtensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Resources.Reader.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Resources.ResourceManager.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Resources.Writer.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.CompilerServices.Unsafe.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.CompilerServices.VisualC.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Extensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Handles.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.InteropServices.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.InteropServices.JavaScript.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.InteropServices.RuntimeInformation.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Intrinsics.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Loader.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Numerics.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Serialization.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Serialization.Formatters.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Serialization.Json.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Serialization.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Runtime.Serialization.Xml.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.AccessControl.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Claims.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.Algorithms.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.Cng.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.Csp.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.Encoding.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.OpenSsl.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.Primitives.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Cryptography.X509Certificates.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Principal.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.Principal.Windows.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Security.SecureString.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ServiceModel.Web.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ServiceProcess.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.Encoding.CodePages.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.Encoding.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.Encoding.Extensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.Encodings.Web.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.Json.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Text.RegularExpressions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.AccessControl.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Channels.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Overlapped.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Tasks.Dataflow.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Tasks.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Tasks.Extensions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Tasks.Parallel.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Thread.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.ThreadPool.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Threading.Timer.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Transactions.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Transactions.Local.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.ValueTuple.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Web.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Web.HttpUtility.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Windows.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.Linq.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.ReaderWriter.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.Serialization.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.XDocument.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.XmlDocument.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.XmlSerializer.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.XPath.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\System.Xml.XPath.XDocument.dll
C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\10.0.10\ref\net10.0\WindowsBase.dll
@@ -0,0 +1,727 @@
{
"version": 4,
"targets": {
"net10.0": {
"Avalonia/12.1.0": {
"type": "package",
"dependencies": {
"Avalonia.BuildServices": "11.3.2",
"Avalonia.Remote.Protocol": "12.1.0",
"MicroCom.Runtime": "0.11.6"
},
"compile": {
"ref/net10.0/Avalonia.Base.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.Controls.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.DesignerSupport.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.Dialogs.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.Markup.Xaml.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.Markup.dll": {
"related": ".Xaml.xml;.xml"
},
"ref/net10.0/Avalonia.Metal.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.MicroCom.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.OpenGL.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.Vulkan.dll": {
"related": ".xml"
},
"ref/net10.0/Avalonia.dll": {
"related": ".Base.xml;.Controls.xml;.DesignerSupport.xml;.Dialogs.xml;.Markup.Xaml.xml;.Markup.xml;.Metal.xml;.MicroCom.xml;.OpenGL.xml;.Vulkan.xml;.xml"
}
},
"runtime": {
"lib/net10.0/Avalonia.Base.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.Controls.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.DesignerSupport.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.Dialogs.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.Markup.Xaml.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.Markup.dll": {
"related": ".Xaml.xml;.xml"
},
"lib/net10.0/Avalonia.Metal.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.MicroCom.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.OpenGL.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.Vulkan.dll": {
"related": ".xml"
},
"lib/net10.0/Avalonia.dll": {
"related": ".Base.xml;.Controls.xml;.DesignerSupport.xml;.Dialogs.xml;.Markup.Xaml.xml;.Markup.xml;.Metal.xml;.MicroCom.xml;.OpenGL.xml;.Vulkan.xml;.xml"
}
},
"build": {
"buildTransitive/Avalonia.props": {},
"buildTransitive/Avalonia.targets": {}
}
},
"Avalonia.BuildServices/11.3.2": {
"type": "package",
"build": {
"buildTransitive/Avalonia.BuildServices.targets": {}
}
},
"Avalonia.Controls.ColorPicker/12.1.0": {
"type": "package",
"dependencies": {
"Avalonia": "12.1.0",
"Avalonia.Remote.Protocol": "12.1.0"
},
"compile": {
"lib/net10.0/Avalonia.Controls.ColorPicker.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net10.0/Avalonia.Controls.ColorPicker.dll": {
"related": ".xml"
}
}
},
"Avalonia.Remote.Protocol/12.1.0": {
"type": "package",
"compile": {
"lib/net10.0/Avalonia.Remote.Protocol.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net10.0/Avalonia.Remote.Protocol.dll": {
"related": ".xml"
}
}
},
"Avalonia.Themes.Fluent/12.1.0": {
"type": "package",
"dependencies": {
"Avalonia": "12.1.0"
},
"compile": {
"lib/net10.0/Avalonia.Themes.Fluent.dll": {
"related": ".xml"
}
},
"runtime": {
"lib/net10.0/Avalonia.Themes.Fluent.dll": {
"related": ".xml"
}
}
},
"MicroCom.Runtime/0.11.6": {
"type": "package",
"compile": {
"lib/net8.0/MicroCom.Runtime.dll": {}
},
"runtime": {
"lib/net8.0/MicroCom.Runtime.dll": {}
}
}
}
},
"libraries": {
"Avalonia/12.1.0": {
"sha512": "an4ugAy2q6GTdaFl635V8W/LKrWNL+mnSFUprbgyf8m1Zzf9WgoGaF5ajGv5i4gXefMZrzsUPV1QU+kKrgwCWg==",
"type": "package",
"path": "avalonia/12.1.0",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"_manifest/cyclonedx/bom.cdx.json",
"analyzers/dotnet/cs/Avalonia.Analyzers.CSharp.dll",
"analyzers/dotnet/cs/Avalonia.Analyzers.CodeFixes.CSharp.dll",
"analyzers/dotnet/cs/Avalonia.Analyzers.VisualBasic.dll",
"analyzers/dotnet/cs/Avalonia.Generators.dll",
"avalonia.12.1.0.nupkg.sha512",
"avalonia.nuspec",
"build/Avalonia.Generators.props",
"build/Avalonia.props",
"build/Avalonia.targets",
"build/AvaloniaBuildTasks.props",
"build/AvaloniaBuildTasks.targets",
"build/AvaloniaItemSchema.xaml",
"build/AvaloniaPrivateApis.targets",
"build/AvaloniaRules.Project.xml",
"build/AvaloniaSingleProject.targets",
"build/AvaloniaVersion.props",
"buildTransitive/Avalonia.Generators.props",
"buildTransitive/Avalonia.props",
"buildTransitive/Avalonia.targets",
"buildTransitive/AvaloniaBuildTasks.props",
"buildTransitive/AvaloniaBuildTasks.targets",
"buildTransitive/AvaloniaItemSchema.xaml",
"buildTransitive/AvaloniaPrivateApis.targets",
"buildTransitive/AvaloniaRules.Project.xml",
"buildTransitive/AvaloniaSingleProject.targets",
"lib/net10.0/Avalonia.Base.dll",
"lib/net10.0/Avalonia.Base.xml",
"lib/net10.0/Avalonia.Controls.dll",
"lib/net10.0/Avalonia.Controls.xml",
"lib/net10.0/Avalonia.DesignerSupport.dll",
"lib/net10.0/Avalonia.DesignerSupport.xml",
"lib/net10.0/Avalonia.Dialogs.dll",
"lib/net10.0/Avalonia.Dialogs.xml",
"lib/net10.0/Avalonia.Markup.Xaml.dll",
"lib/net10.0/Avalonia.Markup.Xaml.xml",
"lib/net10.0/Avalonia.Markup.dll",
"lib/net10.0/Avalonia.Markup.xml",
"lib/net10.0/Avalonia.Metal.dll",
"lib/net10.0/Avalonia.Metal.xml",
"lib/net10.0/Avalonia.MicroCom.dll",
"lib/net10.0/Avalonia.MicroCom.xml",
"lib/net10.0/Avalonia.OpenGL.dll",
"lib/net10.0/Avalonia.OpenGL.xml",
"lib/net10.0/Avalonia.Vulkan.dll",
"lib/net10.0/Avalonia.Vulkan.xml",
"lib/net10.0/Avalonia.dll",
"lib/net10.0/Avalonia.xml",
"lib/net8.0/Avalonia.Base.dll",
"lib/net8.0/Avalonia.Base.xml",
"lib/net8.0/Avalonia.Controls.dll",
"lib/net8.0/Avalonia.Controls.xml",
"lib/net8.0/Avalonia.DesignerSupport.dll",
"lib/net8.0/Avalonia.DesignerSupport.xml",
"lib/net8.0/Avalonia.Dialogs.dll",
"lib/net8.0/Avalonia.Dialogs.xml",
"lib/net8.0/Avalonia.Markup.Xaml.dll",
"lib/net8.0/Avalonia.Markup.Xaml.xml",
"lib/net8.0/Avalonia.Markup.dll",
"lib/net8.0/Avalonia.Markup.xml",
"lib/net8.0/Avalonia.Metal.dll",
"lib/net8.0/Avalonia.Metal.xml",
"lib/net8.0/Avalonia.MicroCom.dll",
"lib/net8.0/Avalonia.MicroCom.xml",
"lib/net8.0/Avalonia.OpenGL.dll",
"lib/net8.0/Avalonia.OpenGL.xml",
"lib/net8.0/Avalonia.Vulkan.dll",
"lib/net8.0/Avalonia.Vulkan.xml",
"lib/net8.0/Avalonia.dll",
"lib/net8.0/Avalonia.xml",
"ref/net10.0/Avalonia.Base.dll",
"ref/net10.0/Avalonia.Base.xml",
"ref/net10.0/Avalonia.Controls.dll",
"ref/net10.0/Avalonia.Controls.xml",
"ref/net10.0/Avalonia.DesignerSupport.dll",
"ref/net10.0/Avalonia.DesignerSupport.xml",
"ref/net10.0/Avalonia.Dialogs.dll",
"ref/net10.0/Avalonia.Dialogs.xml",
"ref/net10.0/Avalonia.Markup.Xaml.dll",
"ref/net10.0/Avalonia.Markup.Xaml.xml",
"ref/net10.0/Avalonia.Markup.dll",
"ref/net10.0/Avalonia.Markup.xml",
"ref/net10.0/Avalonia.Metal.dll",
"ref/net10.0/Avalonia.Metal.xml",
"ref/net10.0/Avalonia.MicroCom.dll",
"ref/net10.0/Avalonia.MicroCom.xml",
"ref/net10.0/Avalonia.OpenGL.dll",
"ref/net10.0/Avalonia.OpenGL.xml",
"ref/net10.0/Avalonia.Vulkan.dll",
"ref/net10.0/Avalonia.Vulkan.xml",
"ref/net10.0/Avalonia.dll",
"ref/net10.0/Avalonia.xml",
"ref/net8.0/Avalonia.Base.dll",
"ref/net8.0/Avalonia.Base.xml",
"ref/net8.0/Avalonia.Controls.dll",
"ref/net8.0/Avalonia.Controls.xml",
"ref/net8.0/Avalonia.DesignerSupport.dll",
"ref/net8.0/Avalonia.DesignerSupport.xml",
"ref/net8.0/Avalonia.Dialogs.dll",
"ref/net8.0/Avalonia.Dialogs.xml",
"ref/net8.0/Avalonia.Markup.Xaml.dll",
"ref/net8.0/Avalonia.Markup.Xaml.xml",
"ref/net8.0/Avalonia.Markup.dll",
"ref/net8.0/Avalonia.Markup.xml",
"ref/net8.0/Avalonia.Metal.dll",
"ref/net8.0/Avalonia.Metal.xml",
"ref/net8.0/Avalonia.MicroCom.dll",
"ref/net8.0/Avalonia.MicroCom.xml",
"ref/net8.0/Avalonia.OpenGL.dll",
"ref/net8.0/Avalonia.OpenGL.xml",
"ref/net8.0/Avalonia.Vulkan.dll",
"ref/net8.0/Avalonia.Vulkan.xml",
"ref/net8.0/Avalonia.dll",
"ref/net8.0/Avalonia.xml",
"tools/net10.0/designer/Avalonia.Designer.HostApp.dll",
"tools/net8.0/designer/Avalonia.Designer.HostApp.dll",
"tools/netstandard2.0/Avalonia.Build.Tasks.dll"
]
},
"Avalonia.BuildServices/11.3.2": {
"sha512": "qHDToxto1e3hci5YqbG9n0Ty8mlp3zBUN5wT66wKqaDVzXyQ0do3EnRILd4Ke9jpvsktaPpgE0YjEk7hornryQ==",
"type": "package",
"path": "avalonia.buildservices/11.3.2",
"hasTools": true,
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"README.md",
"avalonia.buildservices.11.3.2.nupkg.sha512",
"avalonia.buildservices.nuspec",
"build/Avalonia.BuildServices.targets",
"buildTransitive/Avalonia.BuildServices.targets",
"tools/netstandard2.0/Avalonia.BuildServices.Collector.dll",
"tools/netstandard2.0/Avalonia.BuildServices.dll",
"tools/netstandard2.0/runtimeconfig.json"
]
},
"Avalonia.Controls.ColorPicker/12.1.0": {
"sha512": "5ye5pHOKNSPh/lqQlQ/Z4rKwTjzjCGqlWseycjAuJp4DjyDR2ZH1mt3GBgL7K/y1Th+Gxu+LfM9IqIe6UqlxFA==",
"type": "package",
"path": "avalonia.controls.colorpicker/12.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"_manifest/cyclonedx/bom.cdx.json",
"avalonia.controls.colorpicker.12.1.0.nupkg.sha512",
"avalonia.controls.colorpicker.nuspec",
"lib/net10.0/Avalonia.Controls.ColorPicker.dll",
"lib/net10.0/Avalonia.Controls.ColorPicker.xml",
"lib/net8.0/Avalonia.Controls.ColorPicker.dll",
"lib/net8.0/Avalonia.Controls.ColorPicker.xml"
]
},
"Avalonia.Remote.Protocol/12.1.0": {
"sha512": "p6OKt6O7vOub4TS2pAjaeW0Y13oxrPs4uixeVZpJByiSQKKk+LyApN5yRy2JerpfTMtI86Y5pNwugyKTHZJnAw==",
"type": "package",
"path": "avalonia.remote.protocol/12.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"_manifest/cyclonedx/bom.cdx.json",
"avalonia.remote.protocol.12.1.0.nupkg.sha512",
"avalonia.remote.protocol.nuspec",
"lib/net10.0/Avalonia.Remote.Protocol.dll",
"lib/net10.0/Avalonia.Remote.Protocol.xml",
"lib/net8.0/Avalonia.Remote.Protocol.dll",
"lib/net8.0/Avalonia.Remote.Protocol.xml",
"lib/netstandard2.0/Avalonia.Remote.Protocol.dll",
"lib/netstandard2.0/Avalonia.Remote.Protocol.xml"
]
},
"Avalonia.Themes.Fluent/12.1.0": {
"sha512": "MVi5L9HymnNm+gP2aNXNcyrP2iKGJWFubQ5Bv8/Przflxca1aIT9QBpTUV6c3olA9rLYFY7MJRR/C/BZaUhemQ==",
"type": "package",
"path": "avalonia.themes.fluent/12.1.0",
"files": [
".nupkg.metadata",
".signature.p7s",
"Icon.png",
"_manifest/cyclonedx/bom.cdx.json",
"avalonia.themes.fluent.12.1.0.nupkg.sha512",
"avalonia.themes.fluent.nuspec",
"lib/net10.0/Avalonia.Themes.Fluent.dll",
"lib/net10.0/Avalonia.Themes.Fluent.xml",
"lib/net8.0/Avalonia.Themes.Fluent.dll",
"lib/net8.0/Avalonia.Themes.Fluent.xml"
]
},
"MicroCom.Runtime/0.11.6": {
"sha512": "NdNWGDiZ6eS/Mf/9+QHR91cj1K7Hy+PX9yrHI/zM7xFYuj9IWT2uxtB6sCHjrnxAeLV9fut1R6zHDUGKX6f9lQ==",
"type": "package",
"path": "microcom.runtime/0.11.6",
"files": [
".nupkg.metadata",
".signature.p7s",
"lib/net5.0/MicroCom.Runtime.dll",
"lib/net8.0/MicroCom.Runtime.dll",
"lib/netstandard2.0/MicroCom.Runtime.dll",
"microcom.runtime.0.11.6.nupkg.sha512",
"microcom.runtime.nuspec"
]
}
},
"projectFileDependencyGroups": {
"net10.0": [
"Avalonia >= 12.1.0",
"Avalonia.Controls.ColorPicker >= 12.1.0",
"Avalonia.Themes.Fluent >= 12.1.0"
]
},
"packageFolders": {
"C:\\Users\\heilm\\.nuget\\packages\\": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj",
"projectName": "Avalonia.PropertyGrid",
"projectPath": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj",
"packagesPath": "C:\\Users\\heilm\\.nuget\\packages\\",
"outputPath": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\obj\\",
"projectStyle": "PackageReference",
"configFilePaths": [
"C:\\Users\\heilm\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net10.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net10.0": {
"framework": "net10.0",
"targetAlias": "net10.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
},
"restoreAuditProperties": {
"enableAudit": "true",
"auditLevel": "low",
"auditMode": "all"
},
"SdkAnalysisLevel": "10.0.300"
},
"frameworks": {
"net10.0": {
"framework": "net10.0",
"targetAlias": "net10.0",
"dependencies": {
"Avalonia": {
"target": "Package",
"version": "[12.1.0, )"
},
"Avalonia.Controls.ColorPicker": {
"target": "Package",
"version": "[12.1.0, )"
},
"Avalonia.Themes.Fluent": {
"target": "Package",
"version": "[12.1.0, )"
}
},
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48",
"net481"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.302/PortableRuntimeIdentifierGraph.json",
"packagesToPrune": {
"Microsoft.CSharp": "(,4.7.32767]",
"Microsoft.VisualBasic": "(,10.4.32767]",
"Microsoft.Win32.Primitives": "(,4.3.32767]",
"Microsoft.Win32.Registry": "(,5.0.32767]",
"runtime.any.System.Collections": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.any.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.any.System.Globalization": "(,4.3.32767]",
"runtime.any.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.any.System.IO": "(,4.3.32767]",
"runtime.any.System.Reflection": "(,4.3.32767]",
"runtime.any.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.any.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.any.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.any.System.Runtime": "(,4.3.32767]",
"runtime.any.System.Runtime.Handles": "(,4.3.32767]",
"runtime.any.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.any.System.Text.Encoding": "(,4.3.32767]",
"runtime.any.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.any.System.Threading.Tasks": "(,4.3.32767]",
"runtime.any.System.Threading.Timer": "(,4.3.32767]",
"runtime.aot.System.Collections": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tools": "(,4.3.32767]",
"runtime.aot.System.Diagnostics.Tracing": "(,4.3.32767]",
"runtime.aot.System.Globalization": "(,4.3.32767]",
"runtime.aot.System.Globalization.Calendars": "(,4.3.32767]",
"runtime.aot.System.IO": "(,4.3.32767]",
"runtime.aot.System.Reflection": "(,4.3.32767]",
"runtime.aot.System.Reflection.Extensions": "(,4.3.32767]",
"runtime.aot.System.Reflection.Primitives": "(,4.3.32767]",
"runtime.aot.System.Resources.ResourceManager": "(,4.3.32767]",
"runtime.aot.System.Runtime": "(,4.3.32767]",
"runtime.aot.System.Runtime.Handles": "(,4.3.32767]",
"runtime.aot.System.Runtime.InteropServices": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding": "(,4.3.32767]",
"runtime.aot.System.Text.Encoding.Extensions": "(,4.3.32767]",
"runtime.aot.System.Threading.Tasks": "(,4.3.32767]",
"runtime.aot.System.Threading.Timer": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.debian.9-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.27-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.fedora.28-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.opensuse.42.3-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple": "(,4.3.32767]",
"runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography": "(,4.3.32767]",
"runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Http": "(,4.3.32767]",
"runtime.ubuntu.18.04-x64.runtime.native.System.Net.Security": "(,4.3.32767]",
"runtime.unix.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.unix.System.Console": "(,4.3.32767]",
"runtime.unix.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.unix.System.IO.FileSystem": "(,4.3.32767]",
"runtime.unix.System.Net.Primitives": "(,4.3.32767]",
"runtime.unix.System.Net.Sockets": "(,4.3.32767]",
"runtime.unix.System.Private.Uri": "(,4.3.32767]",
"runtime.unix.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win.Microsoft.Win32.Primitives": "(,4.3.32767]",
"runtime.win.System.Console": "(,4.3.32767]",
"runtime.win.System.Diagnostics.Debug": "(,4.3.32767]",
"runtime.win.System.IO.FileSystem": "(,4.3.32767]",
"runtime.win.System.Net.Primitives": "(,4.3.32767]",
"runtime.win.System.Net.Sockets": "(,4.3.32767]",
"runtime.win.System.Runtime.Extensions": "(,4.3.32767]",
"runtime.win10-arm-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-arm64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win10-x64-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win10-x86-aot.runtime.native.System.IO.Compression": "(,4.0.32767]",
"runtime.win7-x64.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7-x86.runtime.native.System.IO.Compression": "(,4.3.32767]",
"runtime.win7.System.Private.Uri": "(,4.3.32767]",
"runtime.win8-arm.runtime.native.System.IO.Compression": "(,4.3.32767]",
"System.AppContext": "(,4.3.32767]",
"System.Buffers": "(,5.0.32767]",
"System.Collections": "(,4.3.32767]",
"System.Collections.Concurrent": "(,4.3.32767]",
"System.Collections.Immutable": "(,10.0.32767]",
"System.Collections.NonGeneric": "(,4.3.32767]",
"System.Collections.Specialized": "(,4.3.32767]",
"System.ComponentModel": "(,4.3.32767]",
"System.ComponentModel.Annotations": "(,4.3.32767]",
"System.ComponentModel.EventBasedAsync": "(,4.3.32767]",
"System.ComponentModel.Primitives": "(,4.3.32767]",
"System.ComponentModel.TypeConverter": "(,4.3.32767]",
"System.Console": "(,4.3.32767]",
"System.Data.Common": "(,4.3.32767]",
"System.Data.DataSetExtensions": "(,4.4.32767]",
"System.Diagnostics.Contracts": "(,4.3.32767]",
"System.Diagnostics.Debug": "(,4.3.32767]",
"System.Diagnostics.DiagnosticSource": "(,10.0.32767]",
"System.Diagnostics.FileVersionInfo": "(,4.3.32767]",
"System.Diagnostics.Process": "(,4.3.32767]",
"System.Diagnostics.StackTrace": "(,4.3.32767]",
"System.Diagnostics.TextWriterTraceListener": "(,4.3.32767]",
"System.Diagnostics.Tools": "(,4.3.32767]",
"System.Diagnostics.TraceSource": "(,4.3.32767]",
"System.Diagnostics.Tracing": "(,4.3.32767]",
"System.Drawing.Primitives": "(,4.3.32767]",
"System.Dynamic.Runtime": "(,4.3.32767]",
"System.Formats.Asn1": "(,10.0.32767]",
"System.Formats.Tar": "(,10.0.32767]",
"System.Globalization": "(,4.3.32767]",
"System.Globalization.Calendars": "(,4.3.32767]",
"System.Globalization.Extensions": "(,4.3.32767]",
"System.IO": "(,4.3.32767]",
"System.IO.Compression": "(,4.3.32767]",
"System.IO.Compression.ZipFile": "(,4.3.32767]",
"System.IO.FileSystem": "(,4.3.32767]",
"System.IO.FileSystem.AccessControl": "(,4.4.32767]",
"System.IO.FileSystem.DriveInfo": "(,4.3.32767]",
"System.IO.FileSystem.Primitives": "(,4.3.32767]",
"System.IO.FileSystem.Watcher": "(,4.3.32767]",
"System.IO.IsolatedStorage": "(,4.3.32767]",
"System.IO.MemoryMappedFiles": "(,4.3.32767]",
"System.IO.Pipelines": "(,10.0.32767]",
"System.IO.Pipes": "(,4.3.32767]",
"System.IO.Pipes.AccessControl": "(,5.0.32767]",
"System.IO.UnmanagedMemoryStream": "(,4.3.32767]",
"System.Linq": "(,4.3.32767]",
"System.Linq.AsyncEnumerable": "(,10.0.32767]",
"System.Linq.Expressions": "(,4.3.32767]",
"System.Linq.Parallel": "(,4.3.32767]",
"System.Linq.Queryable": "(,4.3.32767]",
"System.Memory": "(,5.0.32767]",
"System.Net.Http": "(,4.3.32767]",
"System.Net.Http.Json": "(,10.0.32767]",
"System.Net.NameResolution": "(,4.3.32767]",
"System.Net.NetworkInformation": "(,4.3.32767]",
"System.Net.Ping": "(,4.3.32767]",
"System.Net.Primitives": "(,4.3.32767]",
"System.Net.Requests": "(,4.3.32767]",
"System.Net.Security": "(,4.3.32767]",
"System.Net.ServerSentEvents": "(,10.0.32767]",
"System.Net.Sockets": "(,4.3.32767]",
"System.Net.WebHeaderCollection": "(,4.3.32767]",
"System.Net.WebSockets": "(,4.3.32767]",
"System.Net.WebSockets.Client": "(,4.3.32767]",
"System.Numerics.Vectors": "(,5.0.32767]",
"System.ObjectModel": "(,4.3.32767]",
"System.Private.DataContractSerialization": "(,4.3.32767]",
"System.Private.Uri": "(,4.3.32767]",
"System.Reflection": "(,4.3.32767]",
"System.Reflection.DispatchProxy": "(,6.0.32767]",
"System.Reflection.Emit": "(,4.7.32767]",
"System.Reflection.Emit.ILGeneration": "(,4.7.32767]",
"System.Reflection.Emit.Lightweight": "(,4.7.32767]",
"System.Reflection.Extensions": "(,4.3.32767]",
"System.Reflection.Metadata": "(,10.0.32767]",
"System.Reflection.Primitives": "(,4.3.32767]",
"System.Reflection.TypeExtensions": "(,4.3.32767]",
"System.Resources.Reader": "(,4.3.32767]",
"System.Resources.ResourceManager": "(,4.3.32767]",
"System.Resources.Writer": "(,4.3.32767]",
"System.Runtime": "(,4.3.32767]",
"System.Runtime.CompilerServices.Unsafe": "(,7.0.32767]",
"System.Runtime.CompilerServices.VisualC": "(,4.3.32767]",
"System.Runtime.Extensions": "(,4.3.32767]",
"System.Runtime.Handles": "(,4.3.32767]",
"System.Runtime.InteropServices": "(,4.3.32767]",
"System.Runtime.InteropServices.RuntimeInformation": "(,4.3.32767]",
"System.Runtime.Loader": "(,4.3.32767]",
"System.Runtime.Numerics": "(,4.3.32767]",
"System.Runtime.Serialization.Formatters": "(,4.3.32767]",
"System.Runtime.Serialization.Json": "(,4.3.32767]",
"System.Runtime.Serialization.Primitives": "(,4.3.32767]",
"System.Runtime.Serialization.Xml": "(,4.3.32767]",
"System.Security.AccessControl": "(,6.0.32767]",
"System.Security.Claims": "(,4.3.32767]",
"System.Security.Cryptography.Algorithms": "(,4.3.32767]",
"System.Security.Cryptography.Cng": "(,5.0.32767]",
"System.Security.Cryptography.Csp": "(,4.3.32767]",
"System.Security.Cryptography.Encoding": "(,4.3.32767]",
"System.Security.Cryptography.OpenSsl": "(,5.0.32767]",
"System.Security.Cryptography.Primitives": "(,4.3.32767]",
"System.Security.Cryptography.X509Certificates": "(,4.3.32767]",
"System.Security.Principal": "(,4.3.32767]",
"System.Security.Principal.Windows": "(,5.0.32767]",
"System.Security.SecureString": "(,4.3.32767]",
"System.Text.Encoding": "(,4.3.32767]",
"System.Text.Encoding.CodePages": "(,10.0.32767]",
"System.Text.Encoding.Extensions": "(,4.3.32767]",
"System.Text.Encodings.Web": "(,10.0.32767]",
"System.Text.Json": "(,10.0.32767]",
"System.Text.RegularExpressions": "(,4.3.32767]",
"System.Threading": "(,4.3.32767]",
"System.Threading.AccessControl": "(,10.0.32767]",
"System.Threading.Channels": "(,10.0.32767]",
"System.Threading.Overlapped": "(,4.3.32767]",
"System.Threading.Tasks": "(,4.3.32767]",
"System.Threading.Tasks.Dataflow": "(,10.0.32767]",
"System.Threading.Tasks.Extensions": "(,5.0.32767]",
"System.Threading.Tasks.Parallel": "(,4.3.32767]",
"System.Threading.Thread": "(,4.3.32767]",
"System.Threading.ThreadPool": "(,4.3.32767]",
"System.Threading.Timer": "(,4.3.32767]",
"System.ValueTuple": "(,4.5.32767]",
"System.Xml.ReaderWriter": "(,4.3.32767]",
"System.Xml.XDocument": "(,4.3.32767]",
"System.Xml.XmlDocument": "(,4.3.32767]",
"System.Xml.XmlSerializer": "(,4.3.32767]",
"System.Xml.XPath": "(,4.3.32767]",
"System.Xml.XPath.XDocument": "(,5.0.32767]"
}
}
}
}
}
@@ -0,0 +1,15 @@
{
"version": 2,
"dgSpecHash": "4bgnYV+wUO4=",
"success": true,
"projectFilePath": "C:\\Users\\heilm\\OneDrive - Num Industry Alliance AG\\Desktop\\PropertyGridExample\\Avalonia.PropertyGrid\\Avalonia.PropertyGrid.csproj",
"expectedPackageFiles": [
"C:\\Users\\heilm\\.nuget\\packages\\avalonia\\12.1.0\\avalonia.12.1.0.nupkg.sha512",
"C:\\Users\\heilm\\.nuget\\packages\\avalonia.buildservices\\11.3.2\\avalonia.buildservices.11.3.2.nupkg.sha512",
"C:\\Users\\heilm\\.nuget\\packages\\avalonia.controls.colorpicker\\12.1.0\\avalonia.controls.colorpicker.12.1.0.nupkg.sha512",
"C:\\Users\\heilm\\.nuget\\packages\\avalonia.remote.protocol\\12.1.0\\avalonia.remote.protocol.12.1.0.nupkg.sha512",
"C:\\Users\\heilm\\.nuget\\packages\\avalonia.themes.fluent\\12.1.0\\avalonia.themes.fluent.12.1.0.nupkg.sha512",
"C:\\Users\\heilm\\.nuget\\packages\\microcom.runtime\\0.11.6\\microcom.runtime.0.11.6.nupkg.sha512"
],
"logs": []
}