DataRowView DataRowView DataRowView DataRowView Class

Definizione

Rappresenta una visualizzazione personalizzata di un oggetto 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
Ereditarietà
DataRowViewDataRowViewDataRowViewDataRowView
Implementazioni

Esempi

Nell'esempio seguente viene utilizzata la proprietà RowVersion per determinare lo stato di una riga nel DataRowView.The following example uses the RowVersion property to determine the state of a row in the DataRowView. (Vedere RowFilter per un altro esempio di uso di 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

Commenti

Ogni volta che vengono visualizzati i dati, ad esempio in un controllo DataGrid, è possibile visualizzare una sola versione di ogni riga.Whenever data is displayed, such as in a DataGrid control, only one version of each row can be displayed. La riga visualizzata è un DataRowView.The displayed row is a DataRowView.

Un DataRowView può avere uno dei quattro stati di versione diversi: Default, Original, Current e Proposed.A DataRowView can have one of four different version states: Default, Original, Current, and Proposed.

Dopo aver richiamato BeginEdit su un DataRow, qualsiasi valore modificato diventa il valore Proposed.After invoking BeginEdit on a DataRow, any edited value becomes the Proposed value. Fino a quando non viene richiamato CancelEdit o EndEdit, la riga presenta una versione Original e una Proposed.Until either CancelEdit or EndEdit is invoked, the row has an Original and a Proposed version. Se CancelEdit viene richiamato, la versione proposta viene eliminata e il valore viene ripristinato Original.If CancelEdit is invoked, the proposed version is discarded, and the value reverts to Original. Se viene richiamato EndEdit, il DataRowView non ha più una versione di Proposed; il valore proposto diventa invece il valore corrente.If EndEdit is invoked, the DataRowView no longer has a Proposed version; instead, the proposed value becomes the current value. I valori predefiniti sono disponibili solo per le righe con colonne con valori predefiniti definiti.Default values are available only on rows that have columns with default values defined.

Proprietà

DataView DataView DataView DataView

Ottiene l'oggetto DataView cui appartiene questa riga.Gets the DataView to which this row belongs.

IsEdit IsEdit IsEdit IsEdit

Indica se la riga è in modalità di modifica.Indicates whether the row is in edit mode.

IsNew IsNew IsNew IsNew

Indica se un oggetto DataRowView è nuovo.Indicates whether a DataRowView is new.

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

Ottiene o imposta un valore in una colonna specificata.Gets or sets a value in a specified column.

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

Ottiene o imposta un valore in una colonna specificata.Gets or sets a value in a specified column.

Row Row Row Row

Ottiene l'oggetto DataRow visualizzato.Gets the DataRow being viewed.

RowVersion RowVersion RowVersion RowVersion

Ottiene la descrizione della versione corrente dell'oggetto DataRow.Gets the current version description of the DataRow.

Metodi

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

Dà inizio a una routine di modifica.Begins an edit procedure.

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

Annulla una routine di modifica.Cancels an edit procedure.

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

Restituisce un oggetto DataView per l'oggetto DataTable figlio con il nome dell'oggetto DataRelation figlio specificato.Returns a DataView for the child DataTable with the specified child DataRelation.

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

Restituisce un oggetto DataView per l'oggetto DataTable figlio con l'oggetto DataRelation e il padre specificati.Returns a DataView for the child DataTable with the specified DataRelation and parent.

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

Restituisce un oggetto DataView per l'oggetto DataTable figlio con il nome dell'oggetto DataRelation figlio specificato.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)

Restituisce un oggetto DataView per l'oggetto DataTable figlio con il nome DataRelation e il padre specificati.Returns a DataView for the child DataTable with the specified DataRelation name and parent.

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

Elimina una riga.Deletes a row.

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

Esegue il commit delle modifiche al DataRow sottostante e termina la sessione di modifica iniziata con BeginEdit().Commits changes to the underlying DataRow and ends the editing session that was begun with BeginEdit(). Utilizzare CancelEdit() per annullare le modifiche apportate a DataRow.Use CancelEdit() to discard the changes made to the DataRow.

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

Ottiene un valore che indica se l'elemento DataRowView corrente è identico all'oggetto specificato.Gets a value indicating whether the current DataRowView is identical to the specified object.

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

Restituisce il codice hash dell'oggetto DataRow.Returns the hash code of the DataRow object.

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

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

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

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

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

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Eventi

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

Evento generato quando viene modificata una proprietà DataRowView.Event that is raised when a DataRowView property is changed.

Implementazioni dell'interfaccia esplicita

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

Restituisce una raccolta di attributi personalizzati per questa istanza di un componente.Returns a collection of custom attributes for this instance of a component.

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

Restituisce il nome della classe di questa istanza di un componente.Returns the class name of this instance of a component.

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

Restituisce il nome di questa istanza di un componente.Returns the name of this instance of a component.

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

Restituisce un convertitore di tipi per questa istanza di un componente.Returns a type converter for this instance of a component.

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

Restituisce l'evento predefinito per questa istanza di un componente.Returns the default event for this instance of a component.

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

Restituisce la proprietà predefinita per questa istanza di un componente.Returns the default property for this instance of a component.

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

Restituisce un editor del tipo specificato per questa istanza di un componente.Returns an editor of the specified type for this instance of a component.

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

Restituisce gli eventi per questa istanza di un componente.Returns the events for this instance of a component.

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

Restituisce gli eventi per questa istanza di un componente con gli attributi specificati.Returns the events for this instance of a component with specified attributes.

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

Restituisce le proprietà per questa istanza di un componente.Returns the properties for this instance of a component.

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

Restituisce le proprietà per questa istanza di un componente con gli attributi specificati.Returns the properties for this instance of a component with specified attributes.

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

Restituisce un oggetto che contiene la proprietà descritta dal descrittore di proprietà specificato.Returns an object that contains the property described by the specified property descriptor.

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

Ottiene un messaggio che descrive eventuali errori di convalida per l'oggetto.Gets a message that describes any validation errors for the object.

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

Ottiene il messaggio di errore per la proprietà con il nome specificato.Gets the error message for the property with the given name.

Si applica a

Thread safety

Questo tipo è sicuro per le operazioni di lettura multithread.This type is safe for multithreaded read operations. È necessario sincronizzare le operazioni di scrittura.You must synchronize any write operations.

Vedi anche