DataRowView DataRowView DataRowView DataRowView Class

Definition

Stellt eine benutzerdefinierte Ansicht einer DataRow dar.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
Vererbung
DataRowViewDataRowViewDataRowViewDataRowView
Implementiert

Beispiele

Im folgenden Beispiel wird die RowVersion-Eigenschaft verwendet, um den Status einer Zeile in der DataRowView zu bestimmen.The following example uses the RowVersion property to determine the state of a row in the DataRowView. (Ein weiteres Beispiel für die Verwendung von DataRowView finden Sie unter RowFilter.)(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

Hinweise

Wenn Daten angezeigt werden, z. b. in einem DataGrid-Steuerelement, kann nur eine Version der einzelnen Zeilen angezeigt werden.Whenever data is displayed, such as in a DataGrid control, only one version of each row can be displayed. Die angezeigte Zeile ist eine DataRowView.The displayed row is a DataRowView.

Ein DataRowView kann einen von vier verschiedenen Versions Zuständen aufweisen: Default, Original, Current und Proposed.A DataRowView can have one of four different version states: Default, Original, Current, and Proposed.

Nachdem BeginEdit für einen DataRow aufgerufen wurde, wird der bearbeitete Wert zum Proposed-Wert.After invoking BeginEdit on a DataRow, any edited value becomes the Proposed value. Bis entweder CancelEdit oder EndEdit aufgerufen wird, weist die Zeile eine Original-und eine Proposed-Version auf.Until either CancelEdit or EndEdit is invoked, the row has an Original and a Proposed version. Wenn CancelEdit aufgerufen wird, wird die vorgeschlagene Version verworfen, und der Wert wird auf Original zurückgesetzt.If CancelEdit is invoked, the proposed version is discarded, and the value reverts to Original. Wenn EndEdit aufgerufen wird, verfügt der DataRowView nicht mehr über eine Proposed-Version. Stattdessen wird der vorgeschlagene Wert zum aktuellen Wert.If EndEdit is invoked, the DataRowView no longer has a Proposed version; instead, the proposed value becomes the current value. Standardwerte sind nur für Zeilen verfügbar, die Spalten mit definierten Standardwerten aufweisen.Default values are available only on rows that have columns with default values defined.

Eigenschaften

DataView DataView DataView DataView

Ruft die DataView ab, zu der diese Zeile gehört.Gets the DataView to which this row belongs.

IsEdit IsEdit IsEdit IsEdit

Gibt an, ob sich die Zeile im Bearbeitungsmodus befindet.Indicates whether the row is in edit mode.

IsNew IsNew IsNew IsNew

Gibt an, ob eine DataRowView neu ist.Indicates whether a DataRowView is new.

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

Ruft einen Wert in einer angegebenen Spalte ab oder legt diesen fest.Gets or sets a value in a specified column.

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

Ruft einen Wert in einer angegebenen Spalte ab oder legt diesen fest.Gets or sets a value in a specified column.

Row Row Row Row

Ruft die angezeigte DataRow ab.Gets the DataRow being viewed.

RowVersion RowVersion RowVersion RowVersion

Ruft die aktuelle Versionsbeschreibung der DataRow ab.Gets the current version description of the DataRow.

Methoden

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

Beginnt eine Bearbeitungsprozedur.Begins an edit procedure.

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

Bricht eine Bearbeitungsprozedur ab.Cancels an edit procedure.

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

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen untergeordneten DataRelation zurück.Returns a DataView for the child DataTable with the specified child DataRelation.

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

Gibt eine DataView für das untergeordnete DataTable Element mit dem angegebenen übergeordnetem DataRelation-Element zurück.Returns a DataView for the child DataTable with the specified DataRelation and parent.

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

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen untergeordneten DataRelation-Namen zurück.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)

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen DataRelation-Namen und übergeordnetem Element zurück.Returns a DataView for the child DataTable with the specified DataRelation name and parent.

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

Löscht eine Zeile.Deletes a row.

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

Führt Änderungen in der zugrunde liegenden DataRow durch und beendet die Sitzung, die mit BeginEdit() gestartet wurde.Commits changes to the underlying DataRow and ends the editing session that was begun with BeginEdit(). Verwenden Sie CancelEdit(), um die Änderungen zu verwerfen, die an DataRow vorgenommen wurden.Use CancelEdit() to discard the changes made to the DataRow.

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

Ruft einen Wert ab, der angibt, ob der aktuelle DataRowView mit dem angegebenen Objekt identisch istGets a value indicating whether the current DataRowView is identical to the specified object.

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

Gibt den Hashcode des DataRow-Objekts zurückReturns the hash code of the DataRow object.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Ereignisse

PropertyChanged PropertyChanged PropertyChanged PropertyChanged

Das Ereignis, das ausgelöst wird, wenn eine DataRowView-Eigenschaft geändert wird.Event that is raised when a DataRowView property is changed.

Explizite Schnittstellenimplementierungen

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

Gibt eine Auflistung benutzerdefinierter Attribute für diese Instanz einer Komponente zurück.Returns a collection of custom attributes for this instance of a component.

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

Gibt den Klassennamen dieser Instanz einer Komponente zurück.Returns the class name of this instance of a component.

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

Gibt den Namen dieser Instanz einer Komponente zurück.Returns the name of this instance of a component.

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

Gibt einen Typkonverter für diese Instanz einer Komponente zurück.Returns a type converter for this instance of a component.

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

Gibt das Standardereignis für diese Instanz einer Komponente zurück.Returns the default event for this instance of a component.

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

Gibt die Standardeigenschaft für diese Instanz einer Komponente zurück.Returns the default property for this instance of a component.

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

Gibt einen Editor des angegebenen Typs für diese Instanz einer Komponente zurück.Returns an editor of the specified type for this instance of a component.

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

Gibt die Ereignisse für diese Instanz einer Komponente zurück.Returns the events for this instance of a component.

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

Gibt die Ereignisse für diese Instanz einer Komponente mit angegebenen Attributen zurück.Returns the events for this instance of a component with specified attributes.

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

Gibt die Eigenschaften für diese Instanz einer Komponente zurück.Returns the properties for this instance of a component.

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

Gibt die Eigenschaften für diese Instanz einer Komponente mit angegebenen Attributen zurück.Returns the properties for this instance of a component with specified attributes.

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

Gibt ein Objekt zurück, das die Eigenschaft enthält, die durch den Eigenschaftendeskriptor angegeben ist.Returns an object that contains the property described by the specified property descriptor.

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

Ruft eine Meldung ab, die alle Validierungsfehler für das Objekt beschreibt.Gets a message that describes any validation errors for the object.

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

Ruft die Fehlermeldung für die Eigenschaft mit dem angegebenen Namen ab.Gets the error message for the property with the given name.

Gilt für:

Threadsicherheit

Dieser Typ ist für multithreadlesevorgänge sicher.This type is safe for multithreaded read operations. Sie müssen alle Schreibvorgänge synchronisieren.You must synchronize any write operations.

Siehe auch