다음을 통해 공유


IListSource 인터페이스

정의

데이터 소스에 바인딩될 수 있는 목록을 반환하는 기능을 개체에 제공합니다.

public interface class IListSource
public interface IListSource
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public interface IListSource
[System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public interface IListSource
type IListSource = interface
[<System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
type IListSource = interface
[<System.ComponentModel.TypeConverter("System.Windows.Forms.Design.DataSourceConverter, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")>]
type IListSource = interface
Public Interface IListSource
파생
특성

예제

다음 코드 예제를 구현 하는 방법에 설명 합니다 IListSource 인터페이스입니다. EmployeeListSource라는 구성 요소는 GetList 메서드를 구현하여 데이터 바인딩에 대한 IList를 노출합니다. 전체 코드 목록은 방법: IListSource 인터페이스 구현을 참조하세요.

using System;
using System.Collections.Generic;
using System.Text;
using System.ComponentModel;

namespace IListSourceCS
{
    public class EmployeeListSource : Component, IListSource
    {
        public EmployeeListSource() {}

        public EmployeeListSource(IContainer container)
        {
            container.Add(this);
        }

        #region IListSource Members

        bool IListSource.ContainsListCollection
        {
            get { return false; }
        }

        System.Collections.IList IListSource.GetList()
        {
            BindingList<Employee>   ble = new BindingList<Employee>();

            if (!this.DesignMode)
            {
                ble.Add(new Employee("Aaberg, Jesper", 26000000));
                ble.Add(new Employee("Cajhen, Janko", 19600000));
                ble.Add(new Employee("Furse, Kari", 19000000));
                ble.Add(new Employee("Langhorn, Carl", 16000000));
                ble.Add(new Employee("Todorov, Teodor", 15700000));
                ble.Add(new Employee("Verebélyi, Ágnes", 15700000));
            }

            return ble;
        }

        #endregion
    }
}
Imports System.ComponentModel

Public Class EmployeeListSource
    Inherits Component
    Implements IListSource

    <System.Diagnostics.DebuggerNonUserCode()> _
Public Sub New(ByVal Container As System.ComponentModel.IContainer)
        MyClass.New()

        'Required for Windows.Forms Class Composition Designer support
        Container.Add(Me)

    End Sub

    <System.Diagnostics.DebuggerNonUserCode()> _
    Public Sub New()
        MyBase.New()

        'This call is required by the Component Designer.
        InitializeComponent()

    End Sub

    'Component overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
        MyBase.Dispose(disposing)
    End Sub

    'Required by the Component Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Component Designer
    'It can be modified using the Component Designer.
    'Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container()
    End Sub

#Region "IListSource Members"

    Public ReadOnly Property ContainsListCollection() As Boolean Implements System.ComponentModel.IListSource.ContainsListCollection
        Get
            Return False
        End Get
    End Property

    Public Function GetList() As System.Collections.IList Implements System.ComponentModel.IListSource.GetList

        Dim ble As New BindingList(Of Employee)

        If Not Me.DesignMode Then
            ble.Add(New Employee("Aaberg, Jesper", 26000000))
            ble.Add(New Employee("Cajhen, Janko", 19600000))
            ble.Add(New Employee("Furse, Kari", 19000000))
            ble.Add(New Employee("Langhorn, Carl", 16000000))
            ble.Add(New Employee("Todorov, Teodor", 15700000))
            ble.Add(New Employee("Verebélyi, Ágnes", 15700000))
        End If

        Return ble

    End Function

#End Region

End Class

설명

일반적으로 이 인터페이스를 사용하여 자체적으로 구현 IList 하지 않는 개체에서 데이터 원본에 바인딩할 수 있는 목록을 반환합니다.

데이터에 대한 바인딩은 런타임 또는 디자이너에서 발생할 수 있지만 각각에 대한 규칙이 있습니다. 런타임 시 데이터는 다음 중 하나에 바인딩할 수 있습니다.

  • Array

  • 구현자 IList경우 구현자는 강력한 형식의 Item[] 속성 (즉, 합니다 Type 하다는 Object). Item[] 프라이빗을 기본 구현하여 이를 수행할 수 있습니다. 생성 하려는 경우는 IList 는 강력한 형식의 컬렉션 규칙을 따르는에서 파생 되어야 CollectionBase합니다.

  • 구현자 ITypedList합니다.

디자이너에서 바인딩할을 초기화할 수 있습니다 Component 동일한 규칙에 따라 개체입니다.

참고

구현 IListSource 자는 개체의 IList 컬렉션을 포함하는 을 반환 IList 할 수 있습니다.

속성

ContainsListCollection

컬렉션이 IList 개체 컬렉션인지 여부를 나타내는 값을 가져옵니다.

메서드

GetList()

IList를 직접 구현하지 않는 개체에서 데이터 소스에 바인딩될 수 있는 IList를 반환합니다.

적용 대상

추가 정보