DataRowView Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa una vista personalizada de un elemento 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
- Herencia
-
DataRowView
- Implementaciones
Ejemplos
En el ejemplo siguiente se usa la RowVersion propiedad para determinar el estado de una fila en .DataRowView (Vea RowFilter otro ejemplo con 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
Comentarios
Cada vez que se muestran los datos, como en un DataGrid control, solo se puede mostrar una versión de cada fila. La fila mostrada es .DataRowView
Un DataRowView puede tener uno de los cuatro estados de versión diferentes: Default
, Original
, Current
y Proposed
.
Después de invocar BeginEdit en , DataRowcualquier valor editado se convierte en el Proposed
valor . Hasta que se invoque CancelEdit o EndEdit , la fila tiene una Original
versión y .Proposed
Si CancelEdit se invoca, se descarta la versión propuesta y el valor se revierte a Original
. Si EndEdit se invoca, ya DataRowView no tiene una Proposed
versión; en su lugar, el valor propuesto se convierte en el valor actual. Los valores predeterminados solo están disponibles en las filas que tienen columnas con valores predeterminados definidos.
Propiedades
DataView |
Obtiene el DataView al que pertenece esta fila. |
IsEdit |
Indica si la fila está en modo de edición. |
IsNew |
Indica si un DataRowView es nuevo. |
Item[Int32] |
Obtiene o establece el valor de una columna especificada. |
Item[String] |
Obtiene o establece el valor de una columna especificada. |
Row |
Obtiene el DataRow que se está viendo. |
RowVersion |
Obtiene la descripción de la versión actual de DataRow. |
Métodos
BeginEdit() |
Inicia un procedimiento de edición. |
CancelEdit() |
Cancela un procedimiento de edición. |
CreateChildView(DataRelation) |
Devuelve un DataView correspondiente al DataTable secundario con el DataRelation secundario especificado. |
CreateChildView(DataRelation, Boolean) |
Devuelve un elemento DataView correspondiente al elemento DataTable secundario con el DataRelation especificado y el elemento primario. |
CreateChildView(String) |
Devuelve un DataView correspondiente al DataTable secundario con el DataRelation secundario especificado. |
CreateChildView(String, Boolean) |
Devuelve un DataView correspondiente al DataTable secundario con el nombre DataRelation especificado y el primario. |
Delete() |
Elimina una fila. |
EndEdit() |
Confirma los cambios en el DataRow subyacente y finaliza la sesión de edición que se inició con BeginEdit(). Use CancelEdit() para descartar los cambios realizados en DataRow. |
Equals(Object) |
Obtiene un valor que indica si la clase DataRowView actual es idéntica al objeto especificado. |
GetHashCode() |
Devuelve el código hash del objeto DataRow. |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Eventos
PropertyChanged |
Evento que se provoca cuando se cambia una propiedad de DataRowView. |
Implementaciones de interfaz explícitas
ICustomTypeDescriptor.GetAttributes() |
Devuelve una colección de atributos personalizados para esta instancia de un componente. |
ICustomTypeDescriptor.GetClassName() |
Devuelve el nombre de clase de esta instancia de un componente. |
ICustomTypeDescriptor.GetComponentName() |
Devuelve los eventos para esta instancia de un componente. |
ICustomTypeDescriptor.GetConverter() |
Devuelve un convertidor de tipos para instancia de un componente. |
ICustomTypeDescriptor.GetDefaultEvent() |
Devuelve el evento predeterminado para esta instancia de un componente. |
ICustomTypeDescriptor.GetDefaultProperty() |
Devuelve la propiedad predeterminada para esta instancia de un componente. |
ICustomTypeDescriptor.GetEditor(Type) |
Devuelve un editor del tipo especificado para esta instancia de un componente. |
ICustomTypeDescriptor.GetEvents() |
Devuelve los eventos para esta instancia de un componente. |
ICustomTypeDescriptor.GetEvents(Attribute[]) |
Devuelve los eventos para esta instancia de un componente con los atributos especificados. |
ICustomTypeDescriptor.GetProperties() |
Devuelve las propiedades para esta instancia de un componente. |
ICustomTypeDescriptor.GetProperties(Attribute[]) |
Devuelve las propiedades para esta instancia de un componente con los atributos especificados. |
ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) |
Devuelve un objeto que contiene la propiedad que describe el descriptor de propiedades especificado. |
IDataErrorInfo.Error |
Obtiene un mensaje en el que se describen los errores de validación del objeto. |
IDataErrorInfo.Item[String] |
Obtiene el mensaje de error correspondiente a la propiedad con el nombre especificado. |
Se aplica a
Seguridad para subprocesos
Este tipo es seguro para las operaciones de lectura multiproceso. Debe sincronizar las operaciones de escritura.