12[Designer(
"Microsoft.VSDesigner.Data.VS.DataViewDesigner, Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
15[
Editor(
"Microsoft.VSDesigner.Data.Design.DataSourceEditor, Microsoft.VSDesigner, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a",
"System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
62 private string _sort =
string.Empty;
130 [DefaultValue(
false)]
198 bool ICollection.IsSynchronized =>
false;
216 value =
string.Empty;
298 value =
string.Empty;
333 object ICollection.SyncRoot =>
this;
360 if (
value !=
null &&
value.TableName.Length == 0)
396 bool IList.IsReadOnly =>
false;
398 bool IList.IsFixedSize =>
false;
406 bool IBindingList.SupportsChangeNotification =>
true;
408 bool IBindingList.SupportsSearching =>
true;
410 bool IBindingList.SupportsSorting =>
true;
412 bool IBindingList.IsSorted => Sort.Length != 0;
428 string? IBindingListView.Filter
443 bool IBindingListView.SupportsAdvancedSorting =>
true;
445 bool IBindingListView.SupportsFiltering =>
true;
575 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"Warning related to RowFilter has already been shown when RowFilter was delay set.")]
624 if (
sort.Length != 0)
768 for (
int i = 0; i <
array.Length; i++)
806 return array.GetEnumerator();
865 ((
IList)
this).RemoveAt(num);
888 if (
value.RefCount == 1)
949 if (flag &&
value !=
null)
952 if (
value.RefCount == 1)
1023 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"Safe because filter is set to empty string.")]
1070 return string.Empty;
1089 return dataTable.GetPropertyDescriptorCollection(
null);
1223 if (
row.HasPropertyChanged)
1336 [
UnconditionalSuppressMessage(
"ReflectionAnalysis",
"IL2026:RequiresUnreferencedCode", Justification =
"RowFilter is marked as unsafe because it can be used in DataExpression so that we only display warning when user is assigning an expression which means that in here we're either assigning empty filter which is safe or user has already seen a warning.")]
1373 item.Value.RemoveRef();
1512 for (
int k = 0;
k <
array.Length;
k++)
bool TryGetValue(TKey key, [MaybeNullWhen(false)] out TValue value)
bool ContainsKey(TKey key)
bool ICollection< KeyValuePair< TKey, TValue > >. Remove(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
virtual CollectionChangeAction Action
ListChangedType ListChangedType
static bool IsCatchableExceptionType(Exception e)
int IndexOf(DataColumn? column)
bool Contains(string name)
static readonly DataCommonEventSource Log
PropertyDescriptorCollection GetPropertyDescriptorCollection(Attribute[] attributes)
DataColumnCollection Columns
readonly List< DataView > _delayedViews
IndexField[] ParseSortString(string sortString)
Index GetIndex(IndexField[] indexDesc)
string FormatSortString(IndexField[] indexDesc)
readonly RecordManager _recordManager
IndexField[] _primaryIndex
void UnregisterListChangedEvent()
void RegisterListChangedEvent(Index index)
void RegisterMetaDataEvents(DataTable table)
void UnregisterMetaDataEvents()
bool Equals(DataRow x, DataRow y)
static readonly DataRowReferenceComparer s_default
int GetHashCode(DataRow obj)
DataRowReferenceComparer()
readonly Predicate< DataRow > _predicateFilter
RowPredicateFilter(Predicate< DataRow > predicate)
int IndexOf(DataRowView rowview)
DataView(DataTable table, string? RowFilter, string? Sort, DataViewRowState RowState)
virtual void OnListChanged(ListChangedEventArgs e)
bool RowExist(List< object[]> arraylist, object[] objectArray)
ListChangedEventArgs _addNewMoved
virtual void IndexListChanged(object sender, ListChangedEventArgs e)
DataViewRowState _recordStates
bool IBindingList. AllowEdit
DataView(DataTable table, Predicate< DataRow > predicate, Comparison< DataRow > comparison, DataViewRowState RowState)
DataView(DataTable table, bool locked)
Index GetFindIndex(string column, bool keepIndex)
override void Dispose(bool disposing)
void ChildRelationCollectionChanged(object sender, CollectionChangeEventArgs e)
ListChangedEventHandler? ListChanged
DataViewRowState _delayedRecordStates
Dictionary< string, Index > _findIndexes
static int s_objectTypeCount
int GetRecord(int recordIndex)
DataTable ToTable(bool distinct, params string[] columnNames)
string CreateSortString(PropertyDescriptor property, ListSortDirection direction)
readonly DataViewListener _dvListener
virtual ? string RowFilter
DataRowView[] FindRows(object? key)
DataRowView GetRowView(DataRow dr)
Predicate< DataRow >? RowPredicate
Dictionary< DataRow, DataRowView > _rowViewCache
DataRowView GetRowView(int record)
virtual bool Equals(DataView? view)
bool IBindingList. AllowNew
void CopyTo(Array array, int index)
EventHandler? Initialized
static ListChangedEventArgs s_resetEventArgs
void ColumnCollectionChangedInternal(object sender, CollectionChangeEventArgs e)
void CheckSort(string sort)
void MaintainDataView(ListChangedType changedType, DataRow row, bool trackAddRemove)
void SetIndex2(string newSort, DataViewRowState newRowStates, IFilter newRowFilter, bool fireEvent)
Comparison< DataRow > _comparison
DataViewRowState RowStateFilter
void IndexListChangedInternal(ListChangedEventArgs e)
virtual void ColumnCollectionChanged(object? sender, CollectionChangeEventArgs e)
int IndexOfDataRowView(DataRowView rowview)
DataRowView[] FindRows(object?[] key)
DataExpression CreateDataExpressionFromDataViewSettings(DataViewSetting dataViewSetting)
virtual void SetIndex(string newSort, DataViewRowState newRowStates, IFilter newRowFilter)
Comparison< DataRow >? SortComparison
PropertyDescriptor GetSortProperty()
Range FindRecords< TKey, TRow >(Index.ComparisonBySelector< TKey, TRow > comparison, TKey key)
DataTable ToTable(string? tableName)
DataViewManager _dataViewManager
ListSortDescriptionCollection GetSortDescriptions()
virtual int FindByKey(object key)
readonly Dictionary< DataRow, DataRowView > _rowViewBuffer
void ParentRelationCollectionChanged(object sender, CollectionChangeEventArgs e)
virtual int FindByKey(object[] key)
void SetDataViewManager(DataViewManager dataViewManager)
int IList. IndexOf(object value)
DataTable ToTable(string? tableName, bool distinct, params string[] columnNames)
DataView(DataTable? table)
virtual void UpdateIndex(bool force)
virtual DataRowView[] FindRowsByKey(object[] key)
DataRow GetRow(int index)
ListChangedEventHandler _onListChanged
virtual DataRowView AddNew()
void CopyTo(DataRowView[] array, int index)
virtual IFilter GetFilter()
DataRowView[] GetDataRowViewFromRange(Range range)
void FinishAddNew(bool success)
IEnumerator GetEnumerator()
DataViewManager? DataViewManager
void UpdateIndex(bool force, bool fireEvent)
static Exception CanNotSetTable()
static Exception GetElementIndex(int index)
static Exception CanNotDelete()
static Exception AddExternalObject()
static Exception SetTable()
static Exception CanNotUse()
static Exception ColumnNotInTheUnderlyingTable(string column, string table)
static Exception NotOpen()
static Exception RemoveExternalObject()
static Exception CanNotBindTable()
static Exception AddNewNotAllowNull()
static Exception ArgumentContainsNull(string paramName)
static Exception ColumnToSortIsOutOfRange(string column)
static Exception SetRowStateFilter()
static Exception RowOutOfRange()
static Exception InsertExternalObject()
static Exception TraceExceptionWithoutRethrow(Exception e)
static Exception RecordStateRange()
static Exception SetIListObject()
static Exception ArgumentNull(string paramName)
static Exception CanNotClear()
RBTree< int >.RBTreeEnumerator GetEnumerator(int startIndex)
readonly IndexField[] _indexFields
int FindRecordByKey(object key)
int GetRecord(int recordIndex)
Range FindRecords(object key)
static ? Delegate Remove(Delegate? source, Delegate? value)
static ? Delegate Combine(Delegate? a, Delegate? b)
static readonly EventArgs Empty
static void SuppressFinalize(object obj)
static CultureInfo CurrentCulture
static int Increment(ref int location)
void Insert(int index, T item)
void ApplySort(ListSortDescriptionCollection sorts)
void AddIndex(PropertyDescriptor property)
void ApplySort(PropertyDescriptor property, ListSortDirection direction)
void RemoveIndex(PropertyDescriptor property)
int Find(PropertyDescriptor property, object key)
PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors)
string GetListName(PropertyDescriptor[] listAccessors)
bool Invoke(DataRow row, DataRowVersion version)
delegate void ListChangedEventHandler(object? sender, ListChangedEventArgs e)
readonly bool IsDescending
readonly DataColumn Column