Sdílet prostřednictvím


DataRowView Třída

Definice

Představuje přizpůsobené zobrazení objektu DataRow.

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
Dědičnost
DataRowView
Implementuje

Příklady

Následující příklad používá RowVersion vlastnost k určení stavu řádku v objektu DataRowView. (Podívejte se RowFilter na jiný příklad s použitím 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

Při každém zobrazení dat, například v ovládacím DataGrid prvku, lze zobrazit pouze jednu verzi každého řádku. Zobrazený řádek je DataRowView.

Může DataRowView mít jeden ze čtyř různých stavů verze: Default, Original, Currenta Proposed.

Po vyvolání BeginEdit u se libovolná DataRowupravená hodnota stane Proposed hodnotou . Dokud není vyvolán nebo CancelEditEndEdit , má řádek a OriginalProposed verzi. Pokud CancelEdit se vyvolá, navrhovaná verze se zahodí a hodnota se vrátí na Original. Pokud EndEdit je vyvolána, DataRowView už nemá Proposed verzi, místo toho se navrhovaná hodnota stane aktuální hodnotou. Výchozí hodnoty jsou k dispozici pouze v řádcích, které mají definované sloupce s výchozími hodnotami.

Vlastnosti

DataView

Získá, DataView do kterého patří tento řádek.

IsEdit

Určuje, jestli je řádek v režimu úprav.

IsNew

Určuje, jestli DataRowView je nový.

Item[Int32]

Získá nebo nastaví hodnotu v zadaném sloupci.

Item[String]

Získá nebo nastaví hodnotu v zadaném sloupci.

Row

DataRow Získá prohlížené objekty.

RowVersion

Získá aktuální popis verze .DataRow

Metody

BeginEdit()

Zahájí proceduru úprav.

CancelEdit()

Zruší proceduru úprav.

CreateChildView(DataRelation)

Vrátí hodnotu pro podřízenou DataViewDataTable hodnotu se zadaným podřízeným DataRelationparametrem .

CreateChildView(DataRelation, Boolean)

Vrátí hodnotu pro podřízenou DataViewDataTable položku se zadanými DataRelation a nadřazenými.

CreateChildView(String)

Vrátí pro podřízenou DataViewDataTable hodnotu se zadaným názvem podřízeného DataRelation prvku.

CreateChildView(String, Boolean)

DataView Vrátí hodnotu pro podřízenou DataTable položku se zadaným DataRelation názvem a nadřazeným objektem.

Delete()

Odstraní řádek.

EndEdit()

Potvrdí změny v podkladovém DataRow objektu a ukončí relaci úprav, která byla zahájena příkazem BeginEdit(). Slouží CancelEdit() k zahození změn provedených v .DataRow

Equals(Object)

Získá hodnotu označující, zda je aktuální DataRowView identický se zadaným objektem.

GetHashCode()

Vrátí kód hash objektu DataRow .

GetType()

Type Získá z aktuální instance.

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

Vytvoří mělkou kopii aktuálního Objectsouboru .

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

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Událost

PropertyChanged

Událost, která je vyvolána při DataRowView změně vlastnosti.

Explicitní implementace rozhraní

ICustomTypeDescriptor.GetAttributes()

Vrátí kolekci vlastních atributů pro tuto instanci komponenty.

ICustomTypeDescriptor.GetClassName()

Vrátí název třídy této instance komponenty.

ICustomTypeDescriptor.GetComponentName()

Vrátí název této instance komponenty.

ICustomTypeDescriptor.GetConverter()

Vrátí převaděč typů pro tuto instanci komponenty.

ICustomTypeDescriptor.GetDefaultEvent()

Vrátí výchozí událost pro tuto instanci komponenty.

ICustomTypeDescriptor.GetDefaultProperty()

Vrátí výchozí vlastnost pro tuto instanci komponenty.

ICustomTypeDescriptor.GetEditor(Type)

Vrátí editor zadaného typu pro tuto instanci komponenty.

ICustomTypeDescriptor.GetEvents()

Vrátí události pro tuto instanci komponenty.

ICustomTypeDescriptor.GetEvents(Attribute[])

Vrátí události pro tuto instanci komponenty se zadanými atributy.

ICustomTypeDescriptor.GetProperties()

Vrátí vlastnosti pro tuto instanci komponenty.

ICustomTypeDescriptor.GetProperties(Attribute[])

Vrátí vlastnosti pro tuto instanci komponenty se zadanými atributy.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Vrátí objekt, který obsahuje vlastnost popsanou zadaným popisovačem vlastnosti.

IDataErrorInfo.Error

Získá zprávu, která popisuje chyby ověřování objektu.

IDataErrorInfo.Item[String]

Získá chybovou zprávu pro vlastnost s daným názvem.

Platí pro

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

Tento typ je bezpečný pro operace čtení ve více vláknech. Je nutné synchronizovat všechny operace zápisu.

Viz také