DesignerDataSourceView Classe

Definição

Serve como a classe base para classes de exibição de fonte de dados de tempo de design.

public ref class DesignerDataSourceView abstract
public abstract class DesignerDataSourceView
type DesignerDataSourceView = class
Public MustInherit Class DesignerDataSourceView
Herança
DesignerDataSourceView
Derivado

Exemplos

O exemplo de código a seguir mostra como criar um objeto personalizado DesignerDataSourceView junto com uma classe personalizada IDataSourceViewSchema e duas classes personalizadas IDataSourceFieldSchema .

Este exemplo faz parte de um exemplo maior para a DataSourceDesigner classe.

// A design-time data source view
public class CustomDesignDataSourceView : DesignerDataSourceView
{
    private ArrayList _data = null;

    public CustomDesignDataSourceView(
        CustomDataSourceDesigner owner, string viewName)
        : base(owner, viewName)
    {}

    // Get data for design-time display
    public override IEnumerable GetDesignTimeData(
        int minimumRows, out bool isSampleData)
    {
        if (_data == null)
        {
            // Create a set of design-time fake data
            _data = new ArrayList();
            for (int i = 1; i <= minimumRows; i++)
            {
                _data.Add(new BookItem("ID_" + i.ToString(),
                    "Design-Time Title 0" + i.ToString()));
            }
        }
        isSampleData = true;
        return _data as IEnumerable;
    }

    public override IDataSourceViewSchema Schema
    {
        get { return new BookListViewSchema(); }
    }

    // Allow getting the record count
    public override bool CanRetrieveTotalRowCount
    {
        get { return true; }
    }
    // Do not allow deletions
    public override bool CanDelete
    {
        get { return false; }
    }
    // Do not allow insertions
    public override bool CanInsert
    {
        get { return false; }
    }
    // Do not allow updates
    public override bool CanUpdate
    {
        get { return false; }
    }
    // Do not allow paging
    public override bool CanPage
    {
        get { return false; }
    }
    // Do not allow sorting
    public override bool CanSort
    {
        get { return false; }
    }
}
' A     design-time data source view
Public Class CustomDesignDataSourceView
    Inherits DesignerDataSourceView

    Private _data As ArrayList = Nothing

    Public Sub New(ByVal owner As CustomDataSourceDesigner, ByVal viewName As String)
        MyBase.New(owner, viewName)
    End Sub

    ' Get data for design-time display
    Public Overrides Function GetDesignTimeData( _
        ByVal minimumRows As Integer, _
        ByRef isSampleData As Boolean) As IEnumerable

        If IsNothing(_data) Then
            ' Create a set of design-time fake data
            _data = New ArrayList()
            Dim i As Integer
            For i = 1 To minimumRows
                _data.Add(New BookItem("ID_" & i.ToString(), _
                    "Design-Time Title 0" & i.ToString()))
            Next
        End If
        isSampleData = True
        Return CType(_data, IEnumerable)
    End Function

    Public Overrides ReadOnly Property Schema() As IDataSourceViewSchema
        Get
            Return New BookListViewSchema()
        End Get
    End Property

    ' Allow getting the record count
    Public Overrides ReadOnly Property CanRetrieveTotalRowCount() As Boolean
        Get
            Return True
        End Get
    End Property
    ' Do not allow deletions
    Public Overrides ReadOnly Property CanDelete() As Boolean
        Get
            Return False
        End Get
    End Property
    ' Do not allow insertions
    Public Overrides ReadOnly Property CanInsert() As Boolean
        Get
            Return False
        End Get
    End Property
    ' Do not allow updates
    Public Overrides ReadOnly Property CanUpdate() As Boolean
        Get
            Return False
        End Get
    End Property
    ' Do not allow paging
    Public Overrides ReadOnly Property CanPage() As Boolean
        Get
            Return False
        End Get
    End Property
    ' Do not allow sorting
    Public Overrides ReadOnly Property CanSort() As Boolean
        Get
            Return False
        End Get
    End Property
End Class
// A custom View Schema class
public class BookListViewSchema : IDataSourceViewSchema
{
    public BookListViewSchema()
    { }

    // The name of this View Schema
    public string Name
    {
        get { return "BookList"; }
    }

    // Build a Field Schema array
    public IDataSourceFieldSchema[] GetFields()
    {
        IDataSourceFieldSchema[] fields = new IDataSourceFieldSchema[2];
        fields[0] = new CustomIDFieldSchema();
        fields[1] = new CustomTitleFieldSchema();
        return fields;
    }
    // There are no child views, so return null
    public IDataSourceViewSchema[] GetChildren()
    {
        return null;
    }
}

// A custom Field Schema class for ID
public class CustomIDFieldSchema : IDataSourceFieldSchema
{
    public CustomIDFieldSchema()
    { }

    // Name is ID
    public string Name
    {
        get { return "ID"; }
    }
    // Data type is string
    public Type DataType
    {
        get { return typeof(string); }
    }
    // This is not an Identity field
    public bool Identity
    {
        get { return false; }
    }
    // This field is read only
    public bool IsReadOnly
    {
        get { return true; }
    }
    // This field is unique
    public bool IsUnique
    {
        get { return true; }
    }
    // This field can't be longer than 20
    public int Length
    {
        get { return 20; }
    }
    // This field can't be null
    public bool Nullable
    {
        get { return false; }
    }
    // This is a Primary Key
    public bool PrimaryKey
    {
        get { return true; }
    }

    // These properties do not apply
    public int Precision
    {
        get { return -1; }
    }
    public int Scale
    {
        get { return -1; }
    }
}

// A custom Field Schema class for Title
public class CustomTitleFieldSchema : IDataSourceFieldSchema
{
    public CustomTitleFieldSchema()
    { }

    // Name is Title
    public string Name
    {
        get { return "Title"; }
    }
    // Type is string
    public Type DataType
    {
        get { return typeof(string); }
    }
    // This is not an Identity field
    public bool Identity
    {
        get { return false; }
    }
    // This field is not read only
    public bool IsReadOnly
    {
        get { return false; }
    }
    // This field is not unique
    public bool IsUnique
    {
        get { return false; }
    }
    // This field can't be longer than 100
    public int Length
    {
        get { return 100; }
    }
    // This field can't be null
    public bool Nullable
    {
        get { return false; }
    }
    // This is not the Primary Key
    public bool PrimaryKey
    {
        get { return false; }
    }

    // These properties do not apply
    public int Precision
    {
        get { return -1; }
    }
    public int Scale
    {
        get { return -1; }
    }
}
' A custom View Schema class
Public Class BookListViewSchema
    Implements IDataSourceViewSchema

    Public Sub New()
    End Sub

    ' The name of this View Schema
    Public ReadOnly Property Name() As String Implements IDataSourceViewSchema.Name
        Get
            Return "BookList"
        End Get
    End Property

    ' Build a Field Schema array
    Public Function GetFields() As IDataSourceFieldSchema() Implements IDataSourceViewSchema.GetFields
        Dim fields(1) As IDataSourceFieldSchema
        fields(0) = New CustomIDFieldSchema()
        fields(1) = New CustomTitleFieldSchema()
        Return fields
    End Function
    ' There are no child views, so return Nothing
    Public Function GetChildren() As IDataSourceViewSchema() Implements IDataSourceViewSchema.GetChildren
        Return Nothing
    End Function
End Class

' A custom Field Schema class for ID
Public Class CustomIDFieldSchema
    Implements IDataSourceFieldSchema

    Public Sub New()
    End Sub

    ' Name is ID
    Public ReadOnly Property Name() As String Implements IDataSourceFieldSchema.Name
        Get
            Return "ID"
        End Get
    End Property
    ' Data type is string
    Public ReadOnly Property DataType() As Type Implements IDataSourceFieldSchema.DataType
        Get
            Return GetType(String)
        End Get
    End Property
    ' This is not an Identity field
    Public ReadOnly Property Identity() As Boolean Implements IDataSourceFieldSchema.Identity
        Get
            Return False
        End Get
    End Property
    ' This field is read only
    Public ReadOnly Property IsReadOnly() As Boolean Implements IDataSourceFieldSchema.IsReadOnly
        Get
            Return True
        End Get
    End Property
    ' This field is unique
    Public ReadOnly Property IsUnique() As Boolean Implements IDataSourceFieldSchema.IsUnique
        Get
            Return True
        End Get
    End Property
    ' This field can't be longer than 20
    Public ReadOnly Property Length() As Integer Implements IDataSourceFieldSchema.Length
        Get
            Return 20
        End Get
    End Property
    ' This field can't be null
    Public ReadOnly Property Nullable() As Boolean Implements IDataSourceFieldSchema.Nullable
        Get
            Return False
        End Get
    End Property
    ' This is a Primary Key
    Public ReadOnly Property PrimaryKey() As Boolean Implements IDataSourceFieldSchema.PrimaryKey
        Get
            Return True
        End Get
    End Property

    ' These properties do not apply
    Public ReadOnly Property Precision() As Integer Implements IDataSourceFieldSchema.Precision
        Get
            Return -1
        End Get
    End Property
    Public ReadOnly Property Scale() As Integer Implements IDataSourceFieldSchema.Scale
        Get
            Return -1
        End Get
    End Property
End Class

' A custom Field Schema class for Title
Public Class CustomTitleFieldSchema
    Implements IDataSourceFieldSchema

    Public Sub New()
    End Sub

    ' Name is Title
    Public ReadOnly Property Name() As String Implements IDataSourceFieldSchema.Name
        Get
            Return "Title"
        End Get
    End Property
    ' Type is string
    Public ReadOnly Property DataType() As Type Implements IDataSourceFieldSchema.DataType
        Get
            Return GetType(String)
        End Get
    End Property
    ' This is not an Identity field
    Public ReadOnly Property Identity() As Boolean Implements IDataSourceFieldSchema.Identity
        Get
            Return False
        End Get
    End Property
    ' This field is not read only
    Public ReadOnly Property IsReadOnly() As Boolean Implements IDataSourceFieldSchema.IsReadOnly
        Get
            Return False
        End Get
    End Property
    ' This field is not unique
    Public ReadOnly Property IsUnique() As Boolean Implements IDataSourceFieldSchema.IsUnique
        Get
            Return False
        End Get
    End Property
    ' This field can't be longer than 100
    Public ReadOnly Property Length() As Integer Implements IDataSourceFieldSchema.Length
        Get
            Return 100
        End Get
    End Property
    ' This field can't be null
    Public ReadOnly Property Nullable() As Boolean Implements IDataSourceFieldSchema.Nullable
        Get
            Return False
        End Get
    End Property
    ' This is not the Primary Key
    Public ReadOnly Property PrimaryKey() As Boolean Implements IDataSourceFieldSchema.PrimaryKey
        Get
            Return False
        End Get
    End Property

    ' These properties do not apply
    Public ReadOnly Property Precision() As Integer Implements IDataSourceFieldSchema.Precision
        Get
            Return -1
        End Get
    End Property
    Public ReadOnly Property Scale() As Integer Implements IDataSourceFieldSchema.Scale
        Get
            Return -1
        End Get
    End Property
End Class

Notas aos Implementadores

Ao herdar da DesignerDataSourceView classe, você deve substituir o GetDesignTimeData(Int32, Boolean) método para criar dados de exemplo que estejam em conformidade com a Schema propriedade ou para retornar dados reais da fonte de dados.

Construtores

DesignerDataSourceView(IDataSourceDesigner, String)

Inicializa uma nova instância da classe DesignerDataSourceView usando o nome de exibição e o designer de fonte de dados especificados.

Propriedades

CanDelete

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte ao método ExecuteDelete(IDictionary, IDictionary).

CanInsert

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte ao método ExecuteInsert(IDictionary).

CanPage

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte à paginação por meio dos dados que são recuperados pelo método ExecuteSelect(DataSourceSelectArguments).

CanRetrieveTotalRowCount

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte à recuperação do número total de linhas de dados em vez dos dados propriamente ditos.

CanSort

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte a uma exibição classificada na fonte de dados subjacente.

CanUpdate

Obtém um valor que indica se o objeto DataSourceView associado ao objeto DataSourceControl atual dá suporte ao método ExecuteUpdate(IDictionary, IDictionary, IDictionary).

DataSourceDesigner

Obtém uma referência para o designer que criou esse controle DesignerDataSourceView.

Name

Obtém o nome da exibição conforme fornecido quando esta instância da classe DesignerDataSourceView foi criada.

Schema

Obtém um esquema que descreve a exibição da fonte de dados que é representada por esse objeto de exibição.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetDesignTimeData(Int32, Boolean)

Gera dados de tempo de design que correspondem ao esquema do controle de fonte de dados associado usando o número de linhas especificado, que indica se ele está retornando dados de exemplo ou dados reais.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a

Confira também