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 seguir usa a RowVersion propriedade para determinar o estado de uma linha no DataRowView. (Confira 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, Original, Currente Proposed.

Depois de invocar BeginEdit em um DataRow, qualquer valor editado se torna o Proposed valor . Até que ou CancelEditEndEdit seja invocado, a linha tem uma OriginalProposed versão e . Se CancelEdit for invocado, a versão proposta será descartada e o valor será revertido para Original. Se EndEdit for invocado, o DataRowView não terá 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

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 visualizado.

RowVersion

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

Métodos

BeginEdit()

Inicia um procedimento de edição.

CancelEdit()

Cancela um procedimento de edição.

CreateChildView(DataRelation)

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

CreateChildView(DataRelation, Boolean)

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

CreateChildView(String)

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

CreateChildView(String, Boolean)

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

Delete()

Exclui uma linha.

EndEdit()

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

Equals(Object)

Obtém um valor que indica se o DataRowView atual é idêntico ao objeto especificado.

GetHashCode()

Retorna o código hash do objeto DataRow.

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)

Eventos

PropertyChanged

O evento que é gerado quando uma propriedade DataRowView é alterada.

Implantações explícitas de interface

ICustomTypeDescriptor.GetAttributes()

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

ICustomTypeDescriptor.GetClassName()

Retorna o nome de classe desta instância de um componente.

ICustomTypeDescriptor.GetComponentName()

Retorna o nome desta 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 desta instância de um componente.

ICustomTypeDescriptor.GetEvents(Attribute[])

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

ICustomTypeDescriptor.GetProperties()

Retorna as propriedades desta instância de um componente.

ICustomTypeDescriptor.GetProperties(Attribute[])

Retorna as propriedades desta 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 todos os erros de validação do objeto.

IDataErrorInfo.Item[String]

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

Aplica-se a

Acesso thread-safe

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

Confira também