DataRowView クラス

定義

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
継承
DataRowView
実装

次の例では、RowVersion プロパティを使用して、DataRowView の行の状態を確認します。The following example uses the RowVersion property to determine the state of a row in the DataRowView. (別の例については、DataRowView を使用した RowFilter を参照してください)。(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

注釈

DataGrid コントロールなど、データが表示されるたびに、各行の1つのバージョンのみを表示できます。Whenever data is displayed, such as in a DataGrid control, only one version of each row can be displayed. 表示される行は DataRowView です。The displayed row is a DataRowView.

DataRowView には、4つの異なるバージョン状態 (DefaultOriginalCurrentProposed) のいずれかを設定できます。A DataRowView can have one of four different version states: Default, Original, Current, and Proposed.

DataRowBeginEdit を呼び出すと、編集されたすべての値が Proposed の値になります。After invoking BeginEdit on a DataRow, any edited value becomes the Proposed value. CancelEdit または EndEdit のいずれかが呼び出されるまで、行は OriginalProposed のバージョンになります。Until either CancelEdit or EndEdit is invoked, the row has an Original and a Proposed version. CancelEdit が呼び出された場合、提案されたバージョンは破棄され、値は Original に戻ります。If CancelEdit is invoked, the proposed version is discarded, and the value reverts to Original. EndEdit が呼び出された場合、DataRowViewProposed のバージョンを保持しなくなります。代わりに、提案された値が現在の値になります。If EndEdit is invoked, the DataRowView no longer has a Proposed version; instead, the proposed value becomes the current value. 既定値は、既定値が定義されている列を含む行でのみ使用できます。Default values are available only on rows that have columns with default values defined.

プロパティ

DataView

この行が属する DataView を取得します。Gets the DataView to which this row belongs.

IsEdit

行が編集モードかどうかを示します。Indicates whether the row is in edit mode.

IsNew

DataRowView が新しいかどうかを示します。Indicates whether a DataRowView is new.

Item[Int32]

指定した列の値を取得または設定します。Gets or sets a value in a specified column.

Item[String]

指定した列の値を取得または設定します。Gets or sets a value in a specified column.

Row

表示されている DataRow を取得します。Gets the DataRow being viewed.

RowVersion

DataRow の現在のバージョンの説明を取得します。Gets the current version description of the DataRow.

メソッド

BeginEdit()

編集プロシージャを開始します。Begins an edit procedure.

CancelEdit()

編集プロシージャをキャンセルします。Cancels an edit procedure.

CreateChildView(DataRelation)

指定した子 DataView を使用して子 DataTableDataRelation を返します。Returns a DataView for the child DataTable with the specified child DataRelation.

CreateChildView(DataRelation, Boolean)

指定した DataRelation と親を使用して子 DataTableDataView を返します。Returns a DataView for the child DataTable with the specified DataRelation and parent.

CreateChildView(String)

指定した子 DataView 名を使用して子 DataTableDataRelation を返します。Returns a DataView for the child DataTable with the specified child DataRelation name.

CreateChildView(String, Boolean)

指定した DataView 名と親を使用して子 DataTableDataRelation を返します。Returns a DataView for the child DataTable with the specified DataRelation name and parent.

Delete()

行を削除します。Deletes a row.

EndEdit()

DataRow に対する変更をコミットし、BeginEdit() によって開始された編集セッションを終了します。Commits changes to the underlying DataRow and ends the editing session that was begun with BeginEdit(). CancelEdit() への変更を破棄するには、DataRow を使用します。Use CancelEdit() to discard the changes made to the DataRow.

Equals(Object)

現在の DataRowView が指定したオブジェクトと同一かどうかを示す値を取得します。Gets a value indicating whether the current DataRowView is identical to the specified object.

GetHashCode()

DataRow オブジェクトのハッシュ コードを返します。Returns the hash code of the DataRow object.

GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

イベント

PropertyChanged

DataRowView プロパティの変更時に発生するイベント。Event that is raised when a DataRowView property is changed.

明示的なインターフェイスの実装

ICustomTypeDescriptor.GetAttributes()

コンポーネントのこのインスタンスのカスタム属性のコレクションを返します。Returns a collection of custom attributes for this instance of a component.

ICustomTypeDescriptor.GetClassName()

コンポーネントのこのインスタンスのクラス名を返します。Returns the class name of this instance of a component.

ICustomTypeDescriptor.GetComponentName()

コンポーネントのこのインスタンスの名前を返します。Returns the name of this instance of a component.

ICustomTypeDescriptor.GetConverter()

コンポーネントのこのインスタンスの型コンバーターを返します。Returns a type converter for this instance of a component.

ICustomTypeDescriptor.GetDefaultEvent()

コンポーネントのこのインスタンスの既定のイベントを返します。Returns the default event for this instance of a component.

ICustomTypeDescriptor.GetDefaultProperty()

コンポーネントのこのインスタンスの既定のプロパティを返します。Returns the default property for this instance of a component.

ICustomTypeDescriptor.GetEditor(Type)

コンポーネントのこのインスタンスに対して指定されている型のエディターを返します。Returns an editor of the specified type for this instance of a component.

ICustomTypeDescriptor.GetEvents()

コンポーネントのこのインスタンスのイベントを返します。Returns the events for this instance of a component.

ICustomTypeDescriptor.GetEvents(Attribute[])

指定された属性を持つコンポーネントのこのインスタンスのイベントを返します。Returns the events for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetProperties()

コンポーネントのこのインスタンスのプロパティを返します。Returns the properties for this instance of a component.

ICustomTypeDescriptor.GetProperties(Attribute[])

指定された属性を持つコンポーネントのこのインスタンスのプロパティを返します。Returns the properties for this instance of a component with specified attributes.

ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor)

指定したプロパティ記述子によって記述されたプロパティを含むオブジェクトを返します。Returns an object that contains the property described by the specified property descriptor.

IDataErrorInfo.Error

オブジェクトの検証エラーを説明するメッセージを取得します。Gets a message that describes any validation errors for the object.

IDataErrorInfo.Item[String]

指定した名前のプロパティに関するエラー メッセージを取得します。Gets the error message for the property with the given name.

適用対象

スレッド セーフ

この型は、マルチスレッドの読み取り操作に対して安全です。This type is safe for multithreaded read operations. 書き込み操作はすべて同期する必要があります。You must synchronize any write operations.

こちらもご覧ください