initial commit
This commit is contained in:
@@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
Binary file not shown.
@@ -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>
|
||||
+4
@@ -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
|
||||
+32
@@ -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
|
||||
Binary file not shown.
BIN
Binary file not shown.
+1
@@ -0,0 +1 @@
|
||||
b2418c8898ccbb724fcc5b312ca79d0bc3c126ca6897632cc8acc89929747322
|
||||
+16
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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": []
|
||||
}
|
||||
Reference in New Issue
Block a user