DataRowView DataRowView DataRowView DataRowView Class

Definição

Representa uma exibição personalizada de um DataRow.Represents a customized view of a DataRow.

public ref 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, System.ComponentModel.INotifyPropertyChanged
type DataRowView = class
    interface ICustomTypeDescriptor
    interface IEditableObject
    interface IDataErrorInfo
    interface INotifyPropertyChanged
Public Class DataRowView
Implements ICustomTypeDescriptor, IDataErrorInfo, IEditableObject, INotifyPropertyChanged
Herança
DataRowViewDataRowViewDataRowViewDataRowView
Implementações

Exemplos

O exemplo a seguir usa o RowVersion propriedade para determinar o estado de uma linha no DataRowView.The following example uses the RowVersion property to determine the state of a row in the DataRowView. (Consulte RowFilter para obter outro exemplo usando DataRowView.)(See RowFilter for another example using 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 dados são exibidos, como em um DataGrid controle, apenas uma versão de cada linha pode ser exibido.Whenever data is displayed, such as in a DataGrid control, only one version of each row can be displayed. A linha exibida é um DataRowView.The displayed row is a DataRowView.

Um DataRowView pode ter um dos quatro estados diferentes de versão: Default, Original, Current, e Proposed.A DataRowView can have one of four different version states: Default, Original, Current, and Proposed.

Depois de invocar BeginEdit em um DataRow, qualquer valor editado se torna o Proposed valor.After invoking BeginEdit on a DataRow, any edited value becomes the Proposed value. Até que CancelEdit ou EndEdit é chamado, a linha tem um Original e um Proposed versão.Until either CancelEdit or EndEdit is invoked, the row has an Original and a Proposed version. Se CancelEdit é invocado, a versão proposta é descartada e o valor será revertido para Original.If CancelEdit is invoked, the proposed version is discarded, and the value reverts to Original. Se EndEdit é invocado, o DataRowView não tem mais um Proposed versão; em vez disso, o valor proposto torna-se o valor atual.If EndEdit is invoked, the DataRowView no longer has a Proposed version; instead, the proposed value becomes the current value. Valores padrão estão disponíveis apenas nas linhas que têm colunas com valores padrão definidos.Default values are available only on rows that have columns with default values defined.

Propriedades

DataView DataView DataView DataView

Obtém o DataView ao qual essa linha pertence.Gets the DataView to which this row belongs.

IsEdit IsEdit IsEdit IsEdit

Indica se a linha está no modo de edição.Indicates whether the row is in edit mode.

IsNew IsNew IsNew IsNew

Indica se um DataRowView é novo.Indicates whether a DataRowView is new.

Item[Int32] Item[Int32] Item[Int32] Item[Int32]

Obtém ou define um valor em uma coluna especificada.Gets or sets a value in a specified column.

Item[String] Item[String] Item[String] Item[String]

Obtém ou define um valor em uma coluna especificada.Gets or sets a value in a specified column.

Row Row Row Row

Obtém o DataRow que está sendo visualizado.Gets the DataRow being viewed.

RowVersion RowVersion RowVersion RowVersion

Obtém a descrição da versão atual do DataRow.Gets the current version description of the DataRow.

Métodos

BeginEdit() BeginEdit() BeginEdit() BeginEdit()

Inicia um procedimento de edição.Begins an edit procedure.

CancelEdit() CancelEdit() CancelEdit() CancelEdit()

Cancela um procedimento de edição.Cancels an edit procedure.

CreateChildView(DataRelation) CreateChildView(DataRelation) CreateChildView(DataRelation) CreateChildView(DataRelation)

Retorna um DataView para o DataTable filho com o DataRelation filho especificado.Returns a DataView for the child DataTable with the specified child DataRelation.

CreateChildView(DataRelation, Boolean) CreateChildView(DataRelation, Boolean) CreateChildView(DataRelation, Boolean) CreateChildView(DataRelation, Boolean)

Retorna um DataView para o DataTable filho com o pai e o DataRelation especificados.Returns a DataView for the child DataTable with the specified DataRelation and parent.

CreateChildView(String) CreateChildView(String) CreateChildView(String) CreateChildView(String)

Retorna um DataView para o DataTable filho com o nome de DataRelation filho especificado.Returns a DataView for the child DataTable with the specified child DataRelation name.

CreateChildView(String, Boolean) CreateChildView(String, Boolean) CreateChildView(String, Boolean) CreateChildView(String, Boolean)

Retorna um DataView para o DataTable filho com o pai e o nome DataRelation especificados.Returns a DataView for the child DataTable with the specified DataRelation name and parent.

Delete() Delete() Delete() Delete()

Exclui uma linha.Deletes a row.

EndEdit() EndEdit() EndEdit() EndEdit()

Confirma as alterações para o DataRow subjacente e encerra a sessão de edição que foi iniciada com BeginEdit().Commits changes to the underlying DataRow and ends the editing session that was begun with BeginEdit(). Use CancelEdit() para descartar as alterações feitas na DataRow.Use CancelEdit() to discard the changes made to the DataRow.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Obtém um valor que indica se o DataRowView atual é idêntico ao objeto especificado.Gets a value indicating whether the current DataRowView is identical to the specified object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Retorna o código hash do objeto DataRow.Returns the hash code of the DataRow object.

GetType() GetType() GetType() GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Inherited from Object)

Eventos

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

O evento que é gerado quando uma propriedade DataRowView é alterada.Event that is raised when a DataRowView property is changed.

Implantações explícitas de interface

ICustomTypeDescriptor.GetAttributes() ICustomTypeDescriptor.GetAttributes() ICustomTypeDescriptor.GetAttributes() ICustomTypeDescriptor.GetAttributes()

Retorna uma coleção de atributos personalizados para esta instância de um componente.Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName() ICustomTypeDescriptor.GetClassName() ICustomTypeDescriptor.GetClassName() ICustomTypeDescriptor.GetClassName()

Retorna o nome de classe desta instância de um componente.Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName() ICustomTypeDescriptor.GetComponentName() ICustomTypeDescriptor.GetComponentName() ICustomTypeDescriptor.GetComponentName()

Retorna o nome desta instância de um componente.Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter() ICustomTypeDescriptor.GetConverter() ICustomTypeDescriptor.GetConverter() ICustomTypeDescriptor.GetConverter()

Retorna um conversor de tipo para esta instância de um componente.Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent() ICustomTypeDescriptor.GetDefaultEvent() ICustomTypeDescriptor.GetDefaultEvent() ICustomTypeDescriptor.GetDefaultEvent()

Retorna o evento padrão para esta instância de um componente.Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty() ICustomTypeDescriptor.GetDefaultProperty() ICustomTypeDescriptor.GetDefaultProperty() ICustomTypeDescriptor.GetDefaultProperty()

Retorna a propriedade padrão para esta instância de um componente.Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type) ICustomTypeDescriptor.GetEditor(Type) ICustomTypeDescriptor.GetEditor(Type) ICustomTypeDescriptor.GetEditor(Type)

Retorna um editor do tipo especificado para esta instância de um componente.Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents() ICustomTypeDescriptor.GetEvents() ICustomTypeDescriptor.GetEvents() ICustomTypeDescriptor.GetEvents()

Retorna os eventos desta instância de um componente.Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[]) ICustomTypeDescriptor.GetEvents(Attribute[]) ICustomTypeDescriptor.GetEvents(Attribute[]) ICustomTypeDescriptor.GetEvents(Attribute[])

Retorna os eventos desta instância de um componente com atributos especificados.Returns the events for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetProperties() ICustomTypeDescriptor.GetProperties() ICustomTypeDescriptor.GetProperties() ICustomTypeDescriptor.GetProperties()

Retorna as propriedades desta instância de um componente.Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[]) ICustomTypeDescriptor.GetProperties(Attribute[]) ICustomTypeDescriptor.GetProperties(Attribute[]) ICustomTypeDescriptor.GetProperties(Attribute[])

Retorna as propriedades desta instância de um componente com atributos especificados.Returns the properties for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Retorna um objeto que contém a propriedade descrita pelo descritor de propriedade especificado.Returns an object that contains the property described by the specified property descriptor.

IDataErrorInfo.Error IDataErrorInfo.Error IDataErrorInfo.Error IDataErrorInfo.Error

Obtém uma mensagem que descreve todos os erros de validação do objeto.Gets a message that describes any validation errors for the object.

IDataErrorInfo.Item[String] IDataErrorInfo.Item[String] IDataErrorInfo.Item[String] IDataErrorInfo.Item[String]

Obtém a mensagem de erro da propriedade com o nome fornecido.Gets the error message for the property with the given name.

Aplica-se a

Acesso thread-safe

Este tipo é seguro para operações de leitura e multithread.This type is safe for multithreaded read operations. Você deve sincronizar todas as operações de gravação.You must synchronize any write operations.

Veja também