Compartilhar via


DataRowView Classe

Definição

Representa uma exibição personalizada de um DataRow.

public ref class DataRowView : System::ComponentModel::ICustomTypeDescriptor, System::ComponentModel::IDataErrorInfo, System::ComponentModel::IEditableObject, System::ComponentModel::INotifyPropertyChanged
public ref class DataRowView : System::ComponentModel::ICustomTypeDescriptor, System::ComponentModel::IDataErrorInfo, System::ComponentModel::IEditableObject
public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject, System.ComponentModel.INotifyPropertyChanged
public class DataRowView : System.ComponentModel.ICustomTypeDescriptor, System.ComponentModel.IDataErrorInfo, System.ComponentModel.IEditableObject
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IDataErrorInfo
    interface IEditableObject
    interface INotifyPropertyChanged
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IEditableObject
    interface IDataErrorInfo
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IEditableObject
    interface IDataErrorInfo
    interface INotifyPropertyChanged
Public Class DataRowView
Implements ICustomTypeDescriptor, IDataErrorInfo, IEditableObject, INotifyPropertyChanged
Public Class DataRowView
Implements ICustomTypeDescriptor, IDataErrorInfo, IEditableObject
Herança
DataRowView
Implementações

Exemplos

O exemplo a DataRowViewseguir usa a RowVersion propriedade para determinar o estado de uma linha na . (Consulte RowFilter outro exemplo usando DataRowView.)

private static void DemonstrateRowVersion()
{
    // Create a DataTable with one column.
    DataTable table = new DataTable("Table");
    DataColumn column = new DataColumn("Column");
    table.Columns.Add(column);

    // Add ten rows.
    DataRow row;
    for (int i = 0; i < 10; i++)
    {
        row = table.NewRow();
        row["Column"] = "item " + i;
        table.Rows.Add(row);
    }

    table.AcceptChanges();
    // Create a DataView with the table.
    DataView view = new DataView(table);

    // Change one row's value:
    table.Rows[1]["Column"] = "Hello";

    // Add one row:
    row = table.NewRow();
    row["Column"] = "World";
    table.Rows.Add(row);

    // Set the RowStateFilter to display only added
    // and modified rows.
    view.RowStateFilter = DataViewRowState.Added |
        DataViewRowState.ModifiedCurrent;

    // Print those rows. Output includes "Hello" and "World".
    PrintView(view, "ModifiedCurrent and Added");

    // Set filter to display only originals of modified rows.
    view.RowStateFilter = DataViewRowState.ModifiedOriginal;
    PrintView(view, "ModifiedOriginal");

    // Delete three rows.
    table.Rows[1].Delete();
    table.Rows[2].Delete();
    table.Rows[3].Delete();

    // Set the RowStateFilter to display only deleted rows.
    view.RowStateFilter = DataViewRowState.Deleted;
    PrintView(view, "Deleted");

    // Set filter to display only current rows.
    view.RowStateFilter = DataViewRowState.CurrentRows;
    PrintView(view, "Current");

    // Set filter to display only unchanged rows.
    view.RowStateFilter = DataViewRowState.Unchanged;
    PrintView(view, "Unchanged");

    // Set filter to display only original rows.
    // Current values of unmodified rows are also returned.
    view.RowStateFilter = DataViewRowState.OriginalRows;
    PrintView(view, "OriginalRows");
}

private static void PrintView(DataView view, string label)
{
    Console.WriteLine("\n" + label);
    for (int i = 0; i < view.Count; i++)
    {
        Console.WriteLine(view[i]["Column"]);
        Console.WriteLine("DataViewRow.RowVersion: {0}",
            view[i].RowVersion);
    }
}
Private Sub DemonstrateRowVersion()
    Dim i As Integer
    ' Create a DataTable with one column.
    Dim table As New DataTable("Table")
    Dim column As New DataColumn("Column")
    table.Columns.Add(column)

    ' Add ten rows.
    Dim row As DataRow
    For i = 0 To 9
        row = table.NewRow()
        row("Column") = "item " + i.ToString()
        table.Rows.Add(row)
    Next i
    table.AcceptChanges()

    ' Create a DataView with the table.
    Dim view As New DataView(table)

    ' Change one row's value:
    table.Rows(1)("Column") = "Hello"

    ' Add one row:
    row = table.NewRow()
    row("Column") = "World"
    table.Rows.Add(row)

    ' Set the RowStateFilter to display only added and modified rows.
    view.RowStateFilter = _
       DataViewRowState.Added Or DataViewRowState.ModifiedCurrent

    ' Print those rows. Output includes "Hello" and "World".
    PrintView(view, "ModifiedCurrent and Added")

    ' Set filter to display only originals of modified rows.
    view.RowStateFilter = DataViewRowState.ModifiedOriginal
    PrintView(view, "ModifiedOriginal")

    ' Delete three rows.
    table.Rows(1).Delete()
    table.Rows(2).Delete()
    table.Rows(3).Delete()

    ' Set the RowStateFilter to display only deleted rows.
    view.RowStateFilter = DataViewRowState.Deleted
    PrintView(view, "Deleted")

    ' Set filter to display only current rows.
    view.RowStateFilter = DataViewRowState.CurrentRows
    PrintView(view, "Current")

    ' Set filter to display only unchanged rows.
    view.RowStateFilter = DataViewRowState.Unchanged
    PrintView(view, "Unchanged")

    ' Set filter to display only original rows.
    ' Current values of unmodified rows are also returned.
    view.RowStateFilter = DataViewRowState.OriginalRows
    PrintView(view, "OriginalRows")
End Sub

Private Sub PrintView(ByVal view As DataView, ByVal label As String)
    Console.WriteLine(ControlChars.Cr + label)
    Dim i As Integer
    For i = 0 To view.Count - 1
        Console.WriteLine(view(i)("Column"))
        Console.WriteLine("DataRowView.RowVersion: {0}", _
            view(i).RowVersion)
    Next i
End Sub

Comentários

Sempre que os dados são exibidos, como em um DataGrid controle, apenas uma versão de cada linha pode ser exibida. A linha exibida é um DataRowView.

Um DataRowView pode ter um dos quatro estados de versão diferentes: Default, , Originale ProposedCurrent.

Depois de invocar BeginEdit em um DataRowvalor editado, qualquer valor editado se torna o Proposed valor. Até ou CancelEditEndEdit é invocada, a linha tem uma versão e uma ProposedOriginal. Se CancelEdit for invocada, a versão proposta será descartada e o valor será revertido para Original. Se EndEdit for invocado, não DataRowView haverá mais uma Proposed versão; em vez disso, o valor proposto se tornará o valor atual. Os valores padrão estão disponíveis apenas em linhas que têm colunas com valores padrão definidos.

Propriedades

Nome Description
DataView

Obtém o DataView ao qual essa linha pertence.

IsEdit

Indica se a linha está no modo de edição.

IsNew

Indica se um DataRowView é novo.

Item[Int32]

Obtém ou define um valor em uma coluna especificada.

Item[String]

Obtém ou define um valor em uma coluna especificada.

Row

Obtém o DataRow que está sendo exibido.

RowVersion

Obtém a descrição da versão atual do DataRow.

Métodos

Nome Description
BeginEdit()

Inicia um procedimento de edição.

CancelEdit()

Cancela um procedimento de edição.

CreateChildView(DataRelation, Boolean)

Retorna um DataView para o filho DataTable com o pai e o especificado DataRelation .

CreateChildView(DataRelation)

Retorna um DataView para o filho DataTable com o filho DataRelationespecificado.

CreateChildView(String, Boolean)

Retorna um DataView para o filho DataTable com o nome e o pai especificados DataRelation .

CreateChildView(String)

Retorna um DataView para o filho DataTable com o nome filho DataRelation especificado.

Delete()

Exclui uma linha.

EndEdit()

Confirma alterações no subjacente DataRow e encerra a sessão de edição que foi iniciada com BeginEdit(). Use CancelEdit() para descartar as alterações feitas no DataRow.

Equals(Object)

Obtém um valor que indica se a corrente DataRowView é idêntica ao objeto especificado.

GetHashCode()

Retorna o código hash do DataRow objeto.

GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Eventos

Nome Description
PropertyChanged

Evento gerado quando uma DataRowView propriedade é alterada.

Implantações explícitas de interface

Nome Description
ICustomTypeDescriptor.GetAttributes()

Retorna uma coleção de atributos personalizados para esta instância de um componente.

ICustomTypeDescriptor.GetClassName()

Retorna o nome da classe dessa instância de um componente.

ICustomTypeDescriptor.GetComponentName()

Retorna o nome dessa instância de um componente.

ICustomTypeDescriptor.GetConverter()

Retorna um conversor de tipo para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultEvent()

Retorna o evento padrão para esta instância de um componente.

ICustomTypeDescriptor.GetDefaultProperty()

Retorna a propriedade padrão para esta instância de um componente.

ICustomTypeDescriptor.GetEditor(Type)

Retorna um editor do tipo especificado para esta instância de um componente.

ICustomTypeDescriptor.GetEvents()

Retorna os eventos para esta instância de um componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

Retorna os eventos dessa instância de um componente com atributos especificados.

ICustomTypeDescriptor.GetProperties()

Retorna as propriedades dessa instância de um componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Retorna as propriedades dessa instância de um componente com atributos especificados.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Retorna um objeto que contém a propriedade descrita pelo descritor de propriedade especificado.

IDataErrorInfo.Error

Obtém uma mensagem que descreve quaisquer erros de validação para o objeto.

IDataErrorInfo.Item[String]

Obtém a mensagem de erro da propriedade com o nome fornecido.

Aplica-se a

Acesso thread-safe

Esse tipo é seguro para operações de leitura multithreaded. Você deve sincronizar todas as operações de gravação.

Confira também