DataRowView Třída

Definice

Představuje přizpůsobené zobrazení 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
Dědičnost
DataRowView
Implementuje

Příklady

Následující příklad používá RowVersion vlastnost k určení stavu řádku DataRowViewv.The following example uses the RowVersion property to determine the state of a row in the DataRowView. (Další RowFilter DataRowViewpříklad naleznete v tématu.)(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

Poznámky

Pokaždé, když se zobrazí data, například DataGrid v ovládacím prvku, lze zobrazit pouze jednu verzi každého řádku.Whenever data is displayed, such as in a DataGrid control, only one version of each row can be displayed. Zobrazený řádek je DataRowView.The displayed row is a DataRowView.

Original Default Proposed CurrentMůže mít jeden ze čtyř různých stavů verze:,, a. DataRowViewA DataRowView can have one of four different version states: Default, Original, Current, and Proposed.

Po vyvolání BeginEdit DataRowna, se Proposed hodnota upraví.After invoking BeginEdit on a DataRow, any edited value becomes the Proposed value. Dokud není CancelEdit vyvolána EndEdit ani jedna Original , má Proposed řádek a verzi.Until either CancelEdit or EndEdit is invoked, the row has an Original and a Proposed version. Pokud CancelEdit je vyvoláno, navrhovaná verze je zahozena a hodnota se Originalvrátí na.If CancelEdit is invoked, the proposed version is discarded, and the value reverts to Original. Pokud EndEdit je vyvolána DataRowView , Proposed verze již není. namísto toho se navrhovaná hodnota stane aktuální hodnotou.If EndEdit is invoked, the DataRowView no longer has a Proposed version; instead, the proposed value becomes the current value. Výchozí hodnoty jsou k dispozici pouze na řádcích, které mají sloupce s definovanými výchozími hodnotami.Default values are available only on rows that have columns with default values defined.

Vlastnosti

DataView

Získá, DataView do kterého patří tento řádek.Gets the DataView to which this row belongs.

IsEdit

Označuje, zda je řádek v režimu úprav.Indicates whether the row is in edit mode.

IsNew

Označuje, zda DataRowView je nový.Indicates whether a DataRowView is new.

Item[Int32]

Získá nebo nastaví hodnotu v zadaném sloupci.Gets or sets a value in a specified column.

Item[String]

Získá nebo nastaví hodnotu v zadaném sloupci.Gets or sets a value in a specified column.

Row

DataRow Získá zobrazovaný.Gets the DataRow being viewed.

RowVersion

Získá aktuální popis DataRowverze.Gets the current version description of the DataRow.

Metody

BeginEdit()

Spustí proceduru Edit.Begins an edit procedure.

CancelEdit()

Zruší proceduru Edit.Cancels an edit procedure.

CreateChildView(DataRelation)

Vrátí hodnotu DataView pro podřízenou DataTable položku se zadaným podřízeným DataRelationobjektem.Returns a DataView for the child DataTable with the specified child DataRelation.

CreateChildView(DataRelation, Boolean)

Vrátí hodnotu DataView pro podřízenou DataTable položku se zadaným DataRelation a nadřazeným objektem.Returns a DataView for the child DataTable with the specified DataRelation and parent.

CreateChildView(String)

Vrátí hodnotu DataView pro podřízenou DataTable položku se zadaným podřízeným DataRelation názvem.Returns a DataView for the child DataTable with the specified child DataRelation name.

CreateChildView(String, Boolean)

Vrátí hodnotu DataView pro podřízenou DataTable položku se zadaným DataRelation názvem a nadřazenou položkou.Returns a DataView for the child DataTable with the specified DataRelation name and parent.

Delete()

Odstraní řádek.Deletes a row.

EndEdit()

Potvrdí změny v podkladovém DataRow a ukončí relaci úprav, která byla BeginEdit()zahájena.Commits changes to the underlying DataRow and ends the editing session that was begun with BeginEdit(). Použijte CancelEdit() k zahození změn provedených v DataRow.Use CancelEdit() to discard the changes made to the DataRow.

Equals(Object)

Načte hodnotu, která označuje, zda DataRowView je aktuální hodnota shodná se zadaným objektem.Gets a value indicating whether the current DataRowView is identical to the specified object.

GetHashCode()

Vrátí hodnotu hash DataRow objektu.Returns the hash code of the DataRow object.

GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Události

PropertyChanged

Událost, která je vyvolána při DataRowView změně vlastnosti.Event that is raised when a DataRowView property is changed.

Explicitní implementace rozhraní

ICustomTypeDescriptor.GetAttributes()

Vrátí kolekci uživatelských atributů pro tuto instanci komponenty.Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName()

Vrátí název třídy této instance komponenty.Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName()

Vrátí název této instance komponenty.Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter()

Vrátí konvertor typu pro tuto instanci komponenty.Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent()

Vrátí výchozí událost pro tuto instanci komponenty.Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty()

Vrátí výchozí vlastnost této instance komponenty.Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type)

Vrátí Editor zadaného typu pro tuto instanci komponenty.Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents()

Vrátí události pro tuto instanci komponenty.Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[])

Vrátí události pro tuto instanci komponenty se zadanými atributy.Returns the events for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetProperties()

Vrátí vlastnosti pro tuto instanci komponenty.Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[])

Vrátí vlastnosti pro tuto instanci komponenty se zadanými atributy.Returns the properties for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Vrátí objekt, který obsahuje vlastnost popsanou zadaným popisovačem vlastnosti.Returns an object that contains the property described by the specified property descriptor.

IDataErrorInfo.Error

Získá zprávu, která popisuje všechny chyby ověřování pro daný objekt.Gets a message that describes any validation errors for the object.

IDataErrorInfo.Item[String]

Získá chybovou zprávu pro vlastnost s daným názvem.Gets the error message for the property with the given name.

Platí pro

Bezpečný přístup z více vláken

Tento typ je bezpečný pro operace čtení ve více vláknech.This type is safe for multithreaded read operations. Je nutné synchronizovat všechny operace zápisu.You must synchronize any write operations.

Viz také