IListSource 接口 
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
向对象提供返回可以绑定到数据源列表的功能。
public interface class IListSourcepublic 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 IListSourcetype 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 = interfacePublic 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 自身的对象返回可以绑定到数据源的列表。
绑定到数据可以在运行时或在设计器中发生,但每个绑定都有规则。 在运行时,可以绑定到以下任一项中的数据:
- 如果实现者 IList具有强类型 Item[] 属性, (即 TypeObject 不是) , 可以通过将 默认实现 Item[] 设为私有来实现此目的。 如果要创建 IList 遵循强类型集合规则的 ,则应派生自 CollectionBase。 
- 的 ITypedList实现者。 
在设计器中,可以通过遵循相同的规则来初始化绑定到 Component 对象。
注意
的 IListSource 实现者可以返回一个 IList 包含 对象集合的 IList 。
属性
| ContainsListCollection | 获取一个值,该值指示集合是否是 IList 对象的集合。 | 
方法
| GetList() |