File: System\Windows\Forms\Design\ListViewItemCollectionEditor.cs
Web Access
Project: src\src\System.Windows.Forms.Design\src\System.Windows.Forms.Design.csproj (System.Windows.Forms.Design)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
#nullable disable
 
using System.ComponentModel;
using System.ComponentModel.Design;
 
namespace System.Windows.Forms.Design;
 
/// <summary>
///  Provides an editor for a ListView items collection.
/// </summary>
internal class ListViewItemCollectionEditor : CollectionEditor
{
    /// <summary>
    ///  Initializes a new instance of the <see cref="ListViewItemCollectionEditor"/> class.
    /// </summary>
    public ListViewItemCollectionEditor(Type type) : base(type)
    { }
 
    /// <inheritdoc />
    protected override string GetDisplayText(object value)
    {
        if (value is null)
        {
            return string.Empty;
        }
 
        string text;
 
        PropertyDescriptor property = TypeDescriptor.GetDefaultProperty(CollectionType);
        if (property?.PropertyType == typeof(string))
        {
            text = (string)property.GetValue(value);
 
            if (!string.IsNullOrEmpty(text))
            {
                return text;
            }
        }
 
        text = TypeDescriptor.GetConverter(value).ConvertToString(value);
 
        if (string.IsNullOrEmpty(text))
        {
            text = value.GetType().Name;
        }
 
        return text;
    }
}