Поделиться через


DataRowView Класс

Определение

Представляет настраиваемое представление объекта 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
Наследование
DataRowView
Реализации

Примеры

В следующем примере свойство используется RowVersion для определения состояния строки в .DataRowView (См RowFilter . другой пример использования 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

Комментарии

При отображении данных, например в элементе DataGrid управления, можно отобразить только одну версию каждой строки. Отображаемая строка — это DataRowViewстрока.

Может DataRowView иметь одно из четырех различных состояний версии: Default, Original, Currentи Proposed.

После вызова BeginEdit в объекте DataRowлюбое измененное значение становится значением Proposed . CancelEdit EndEdit До вызова строки есть Original и Proposed версия. Если CancelEdit вызывается, предлагаемая версия удаляется, а значение возвращается Original. Если EndEdit вызывается, DataRowView версия больше не имеется Proposed . Вместо этого предлагаемое значение становится текущим значением. Значения по умолчанию доступны только в строках с определенными значениями по умолчанию.

Свойства

Имя Описание
DataView

Возвращает значение, DataView к которому принадлежит эта строка.

IsEdit

Указывает, находится ли строка в режиме редактирования.

IsNew

Указывает, является ли новый DataRowView .

Item[Int32]

Возвращает или задает значение в указанном столбце.

Item[String]

Возвращает или задает значение в указанном столбце.

Row

DataRow Возвращает просмотр.

RowVersion

Возвращает текущее описание DataRowверсии объекта .

Методы

Имя Описание
BeginEdit()

Начинает процедуру редактирования.

CancelEdit()

Отменяет процедуру редактирования.

CreateChildView(DataRelation, Boolean)

Возвращает дочерний DataViewDataTable объект с указанным DataRelation и родительским.

CreateChildView(DataRelation)

Возвращает дочерний DataViewDataTable объект с указанным дочерним DataRelationэлементом.

CreateChildView(String, Boolean)

Возвращает дочерний DataViewDataTable объект с указанным DataRelation именем и родительским элементом.

CreateChildView(String)

Возвращает дочерний DataViewDataTable объект с указанным DataRelation дочерним именем.

Delete()

Удаляет строку.

EndEdit()

Фиксирует изменения в базовой DataRow среде и заканчивает сеанс редактирования, который начался.BeginEdit() Используется CancelEdit() для отмены внесенных изменений DataRow.

Equals(Object)

Возвращает значение, указывающее, идентичен ли текущий DataRowView объект указанному объекту.

GetHashCode()

Возвращает хэш-код DataRow объекта.

GetType()

Возвращает Type текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неглубокую копию текущей Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

События

Имя Описание
PropertyChanged

Событие, возникающее при DataRowView изменении свойства.

Явные реализации интерфейса

Имя Описание
ICustomTypeDescriptor.GetAttributes()

Возвращает коллекцию настраиваемых атрибутов для этого экземпляра компонента.

ICustomTypeDescriptor.GetClassName()

Возвращает имя класса этого экземпляра компонента.

ICustomTypeDescriptor.GetComponentName()

Возвращает имя этого экземпляра компонента.

ICustomTypeDescriptor.GetConverter()

Возвращает преобразователь типов для этого экземпляра компонента.

ICustomTypeDescriptor.GetDefaultEvent()

Возвращает событие по умолчанию для этого экземпляра компонента.

ICustomTypeDescriptor.GetDefaultProperty()

Возвращает свойство по умолчанию для этого экземпляра компонента.

ICustomTypeDescriptor.GetEditor(Type)

Возвращает редактор указанного типа для этого экземпляра компонента.

ICustomTypeDescriptor.GetEvents()

Возвращает события для этого экземпляра компонента.

ICustomTypeDescriptor.GetEvents(Attribute[])

Возвращает события для этого экземпляра компонента с указанными атрибутами.

ICustomTypeDescriptor.GetProperties()

Возвращает свойства для этого экземпляра компонента.

ICustomTypeDescriptor.GetProperties(Attribute[])

Возвращает свойства для этого экземпляра компонента с указанными атрибутами.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

Возвращает объект, содержащий свойство, описанное указанным дескриптором свойства.

IDataErrorInfo.Error

Возвращает сообщение, описывающее все ошибки проверки для объекта.

IDataErrorInfo.Item[String]

Возвращает сообщение об ошибке для свойства с заданным именем.

Применяется к

Потокобезопасность

Этот тип является безопасным для многопоточных операций чтения. Необходимо синхронизировать все операции записи.

См. также раздел