DataRowView Klasse

Definition

Stellt eine benutzerdefinierte Ansicht einer DataRow dar.

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
Vererbung
DataRowView
Implementiert

Beispiele

Im folgenden Beispiel wird die RowVersion Eigenschaft verwendet, um den Status einer Zeile in der DataRowView. (Siehe RowFilter ein weiteres Beispiel mit 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, können nur eine Version jeder Zeile angezeigt werden. Die angezeigte Zeile ist eine DataRowView.

Eine DataRowView kann einen von vier verschiedenen Versionszuständen haben: Default, Original, Current, und Proposed.

Nach dem BeginEdit Aufrufen eines DataRowWerts wird jeder bearbeitete Wert zum Proposed Wert. Bis entweder CancelEdit oder EndEdit aufgerufen wird, verfügt die Zeile über eine Original und eine Proposed Version. Wenn CancelEdit aufgerufen wird, wird die vorgeschlagene Version verworfen, und der Wert wird auf Original. Wenn EndEdit sie aufgerufen wird, verfügt die DataRowView Version nicht mehr über eine Proposed Version. Stattdessen wird der vorgeschlagene Wert zum aktuellen Wert. Standardwerte sind nur für Zeilen verfügbar, die Spalten mit definierten Standardwerten aufweisen.

Eigenschaften

DataView

Ruft die DataView ab, zu der diese Zeile gehört.

IsEdit

Gibt an, ob sich die Zeile im Bearbeitungsmodus befindet.

IsNew

Gibt an, ob eine DataRowView neu ist.

Item[Int32]

Ruft einen Wert in einer angegebenen Spalte ab oder legt diesen fest.

Item[String]

Ruft einen Wert in einer angegebenen Spalte ab oder legt diesen fest.

Row

Ruft die angezeigte DataRow ab.

RowVersion

Ruft die aktuelle Versionsbeschreibung der DataRow ab.

Methoden

BeginEdit()

Beginnt eine Bearbeitungsprozedur.

CancelEdit()

Bricht eine Bearbeitungsprozedur ab.

CreateChildView(DataRelation)

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen untergeordneten DataRelation zurück.

CreateChildView(DataRelation, Boolean)

Gibt eine DataView für das untergeordnete DataTable Element mit dem angegebenen übergeordnetem DataRelation-Element zurück.

CreateChildView(String)

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen untergeordneten DataRelation-Namen zurück.

CreateChildView(String, Boolean)

Gibt eine DataView für die untergeordnete DataTable mit dem angegebenen DataRelation-Namen und übergeordnetem Element zurück.

Delete()

Löscht eine Zeile.

EndEdit()

Führt Änderungen in der zugrunde liegenden DataRow durch und beendet die Sitzung, die mit BeginEdit() gestartet wurde. Verwenden Sie CancelEdit(), um die Änderungen zu verwerfen, die an DataRow vorgenommen wurden.

Equals(Object)

Ruft einen Wert ab, der angibt, ob der aktuelle DataRowView mit dem angegebenen Objekt identisch ist

GetHashCode()

Gibt den Hashcode des DataRow-Objekts zurück

GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Ereignisse

PropertyChanged

Das Ereignis, das ausgelöst wird, wenn eine DataRowView-Eigenschaft geändert wird.

Explizite Schnittstellenimplementierungen

ICustomTypeDescriptor.GetAttributes()

Gibt eine Auflistung benutzerdefinierter Attribute für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetClassName()

Gibt den Klassennamen dieser Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetComponentName()

Gibt den Namen dieser Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetConverter()

Gibt einen Typkonverter für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetDefaultEvent()

Gibt das Standardereignis für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetDefaultProperty()

Gibt die Standardeigenschaft für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEditor(Type)

Gibt einen Editor des angegebenen Typs für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEvents()

Gibt die Ereignisse für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetEvents(Attribute[])

Gibt die Ereignisse für diese Instanz einer Komponente mit angegebenen Attributen zurück.

ICustomTypeDescriptor.GetProperties()

Gibt die Eigenschaften für diese Instanz einer Komponente zurück.

ICustomTypeDescriptor.GetProperties(Attribute[])

Gibt die Eigenschaften für diese Instanz einer Komponente mit angegebenen Attributen zurück.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Gibt ein Objekt zurück, das die Eigenschaft enthält, die durch den Eigenschaftendeskriptor angegeben ist.

IDataErrorInfo.Error

Ruft eine Meldung ab, die alle Validierungsfehler für das Objekt beschreibt.

IDataErrorInfo.Item[String]

Ruft die Fehlermeldung für die Eigenschaft mit dem angegebenen Namen ab.

Gilt für

Threadsicherheit

Dieser Typ ist für Multithread-Lesevorgänge sicher. Sie müssen alle Schreibvorgänge synchronisieren.

Siehe auch