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


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 . До вызова или CancelEditEndEdit строка имеет версию OriginalProposed и . Если CancelEdit вызывается , предлагаемая версия отклоняется, а значение возвращается к Original. Если EndEdit вызывается, DataRowView объект больше не имеет Proposed версии; вместо этого предлагаемое значение становится текущим значением. Значения по умолчанию доступны только для строк со столбцами со значениями по умолчанию.

Свойства

DataView

Получает объект DataView, которому принадлежит эта строка.

IsEdit

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

IsNew

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

Item[Int32]

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

Item[String]

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

Row

Получает просматриваемый объект DataRow.

RowVersion

Получает описание текущей версии объекта DataRow.

Методы

BeginEdit()

Начинает процедуру изменения.

CancelEdit()

Отменяет процедуру изменения.

CreateChildView(DataRelation)

Возвращает DataView для дочернего объекта DataTable с указанным дочерним объектом DataRelation.

CreateChildView(DataRelation, Boolean)

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

CreateChildView(String)

Возвращает DataView для дочернего объекта DataTable с указанным именем дочернего объекта DataRelation.

CreateChildView(String, Boolean)

Возвращает DataView для дочернего объекта DataTable с указанным именем 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]

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

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

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

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

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