DataRowView Klasa

Definicja

Reprezentuje dostosowany widok obiektu 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
Dziedziczenie
DataRowView
Implementuje

Przykłady

W poniższym przykładzie użyto RowVersion właściwości , aby określić stan wiersza w obiekcie DataRowView. (Zobacz RowFilter inny przykład przy użyciu polecenia 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

Uwagi

Za każdym razem, gdy dane są wyświetlane, na przykład w kontrolce DataGrid , można wyświetlić tylko jedną wersję każdego wiersza. Wyświetlany wiersz to DataRowView.

Element DataRowView może mieć jeden z czterech różnych stanów wersji: Default, , CurrentOriginali Proposed.

Po wywołaniu BeginEdit metody DataRowkażda edytowana wartość staje się wartością Proposed . Do momentu wywołania polecenia CancelEdit lub wiersz ma Original wersję i ProposedEndEdit . Jeśli CancelEdit jest wywoływana, proponowana wersja zostanie odrzucona, a wartość zostanie przywrócona do Original. Jeśli EndEdit jest wywoływana, DataRowView nie ma Proposed już wersji. Zamiast tego proponowana wartość staje się bieżącą wartością. Wartości domyślne są dostępne tylko w wierszach, które mają kolumny z zdefiniowanymi wartościami domyślnymi.

Właściwości

DataView

Pobiera element , DataView do którego należy ten wiersz.

IsEdit

Wskazuje, czy wiersz jest w trybie edycji.

IsNew

Wskazuje, czy element DataRowView jest nowy.

Item[Int32]

Pobiera lub ustawia wartość w określonej kolumnie.

Item[String]

Pobiera lub ustawia wartość w określonej kolumnie.

Row

DataRow Pobiera wyświetlany element.

RowVersion

Pobiera bieżący opis wersji elementu DataRow.

Metody

BeginEdit()

Rozpoczyna procedurę edycji.

CancelEdit()

Anuluje procedurę edycji.

CreateChildView(DataRelation)

Zwraca element DataView dla elementu podrzędnego DataTable z określonym elementem podrzędnym DataRelation.

CreateChildView(DataRelation, Boolean)

Zwraca element DataView dla elementu podrzędnego DataTable z określonym DataRelation i nadrzędnym.

CreateChildView(String)

Zwraca wartość DataView dla elementu podrzędnego DataTable o określonej nazwie podrzędnej DataRelation .

CreateChildView(String, Boolean)

Zwraca element DataView dla elementu podrzędnego DataTable z określoną DataRelation nazwą i elementem nadrzędnym.

Delete()

Usuwa wiersz.

EndEdit()

Zatwierdza zmiany w bazowym DataRow obiekcie i kończy sesję edycji, która została rozpoczęta za pomocą BeginEdit()polecenia . Użyj polecenia CancelEdit() , aby odrzucić zmiany wprowadzone w obiekcie DataRow.

Equals(Object)

Pobiera wartość wskazującą, czy bieżący DataRowView jest identyczny z określonym obiektem.

GetHashCode()

Zwraca kod skrótu DataRow obiektu.

GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Zdarzenia

PropertyChanged

Zdarzenie wywoływane po DataRowView zmianie właściwości.

Jawne implementacje interfejsu

ICustomTypeDescriptor.GetAttributes()

Zwraca kolekcję atrybutów niestandardowych dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetClassName()

Zwraca nazwę klasy tego wystąpienia składnika.

ICustomTypeDescriptor.GetComponentName()

Zwraca nazwę tego wystąpienia składnika.

ICustomTypeDescriptor.GetConverter()

Zwraca konwerter typów dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetDefaultEvent()

Zwraca zdarzenie domyślne dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetDefaultProperty()

Zwraca właściwość domyślną dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEditor(Type)

Zwraca edytor określonego typu dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEvents()

Zwraca zdarzenia dla tego wystąpienia składnika.

ICustomTypeDescriptor.GetEvents(Attribute[])

Zwraca zdarzenia dla tego wystąpienia składnika z określonymi atrybutami.

ICustomTypeDescriptor.GetProperties()

Zwraca właściwości tego wystąpienia składnika.

ICustomTypeDescriptor.GetProperties(Attribute[])

Zwraca właściwości tego wystąpienia składnika z określonymi atrybutami.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Zwraca obiekt, który zawiera właściwość opisaną przez deskryptor określonej właściwości.

IDataErrorInfo.Error

Pobiera komunikat opisujący błędy weryfikacji dla obiektu.

IDataErrorInfo.Item[String]

Pobiera komunikat o błędzie dla właściwości o podanej nazwie.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny dla operacji odczytu wielowątkowego. Należy zsynchronizować wszystkie operacje zapisu.

Zobacz też