DataRowView Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Představuje přizpůsobené zobrazení objektu 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
- Dědičnost
-
DataRowView
- Implementuje
Příklady
Následující příklad používá RowVersion vlastnost k určení stavu řádku v objektu DataRowView. (Viz RowFilter další příklad použití 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
Poznámky
Při každém zobrazení dat, například v ovládacím DataGrid prvku, lze zobrazit pouze jednu verzi každého řádku. Zobrazený řádek je .DataRowView
A DataRowView může mít jeden ze čtyř různých stavů verzí: Default, Original, Currenta Proposed.
Po vyvolání BeginEditDataRowhodnoty se jakákoli upravená hodnota změní na Proposed hodnotu. Dokud není CancelEdit vyvolána nebo EndEdit vyvolána, má řádek a OriginalProposed verzi. Pokud CancelEdit je vyvolána, navržená verze se zahodí a hodnota se vrátí na Originalhodnotu . Pokud EndEdit je vyvolána, DataRowView již nemá Proposed verzi; místo toho se navrhovaná hodnota stane aktuální hodnotou. Výchozí hodnoty jsou k dispozici pouze na řádcích, které mají sloupce s definovanými výchozími hodnotami.
Vlastnosti
| Name | Description |
|---|---|
| DataView |
Získá, DataView do kterého tento řádek patří. |
| IsEdit |
Určuje, jestli je řádek v režimu úprav. |
| IsNew |
Určuje, jestli DataRowView je nový. |
| Item[Int32] |
Získá nebo nastaví hodnotu v zadaném sloupci. |
| Item[String] |
Získá nebo nastaví hodnotu v zadaném sloupci. |
| Row |
DataRow Získá zobrazení. |
| RowVersion |
Získá aktuální verzi popis DataRow. |
Metody
| Name | Description |
|---|---|
| BeginEdit() |
Zahájí proceduru úprav. |
| CancelEdit() |
Zruší proceduru úprav. |
| CreateChildView(DataRelation, Boolean) |
DataView Vrátí hodnotu pro dítě DataTable se zadaným DataRelation a nadřazeným objektem. |
| CreateChildView(DataRelation) |
DataView Vrátí hodnotu pro dítě DataTable se zadaným podřízeným DataRelation. |
| CreateChildView(String, Boolean) |
Vrátí hodnotu pro dítě DataTable se zadaným DataViewDataRelation názvem a nadřazeným objektem. |
| CreateChildView(String) |
DataView Vrátí hodnotu pro dítě DataTable se zadaným podřízeným DataRelation názvem. |
| Delete() |
Odstraní řádek. |
| EndEdit() |
Potvrdí změny v podkladové DataRow a ukončí relaci úprav, která byla zahájena BeginEdit(). Slouží CancelEdit() k zahození změn provedených v souboru DataRow. |
| Equals(Object) |
Získá hodnotu určující, zda aktuální DataRowView je identický se zadaným objektem. |
| GetHashCode() |
Vrátí kód hash objektu DataRow . |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Událost
| Name | Description |
|---|---|
| PropertyChanged |
Událost, která je vyvolána při DataRowView změně vlastnosti. |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| ICustomTypeDescriptor.GetAttributes() |
Vrátí kolekci vlastních atributů pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetClassName() |
Vrátí název třídy této instance komponenty. |
| ICustomTypeDescriptor.GetComponentName() |
Vrátí název této instance komponenty. |
| ICustomTypeDescriptor.GetConverter() |
Vrátí převaděč typů pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetDefaultEvent() |
Vrátí výchozí událost pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetDefaultProperty() |
Vrátí výchozí vlastnost pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetEditor(Type) |
Vrátí editor zadaného typu pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetEvents() |
Vrátí události pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetEvents(Attribute[]) |
Vrátí události pro tuto instanci komponenty se zadanými atributy. |
| ICustomTypeDescriptor.GetProperties() |
Vrátí vlastnosti pro tuto instanci komponenty. |
| ICustomTypeDescriptor.GetProperties(Attribute[]) |
Vrátí vlastnosti pro tuto instanci komponenty se zadanými atributy. |
| ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor) |
Vrátí objekt, který obsahuje vlastnost popsanou popisovačem zadané vlastnosti. |
| IDataErrorInfo.Error |
Získá zprávu, která popisuje všechny chyby ověření objektu. |
| IDataErrorInfo.Item[String] |
Získá chybovou zprávu pro vlastnost s daným názvem. |
Platí pro
Bezpečný přístup z více vláken
Tento typ je bezpečný pro operace čtení s více vlákny. Je nutné synchronizovat všechny operace zápisu.