⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arraydataview.cs

📁 分析家数据格式解析源码。日线行情、分笔成交
💻 CS
字号:
// Static Model

namespace FinData
{
	using System;
	using System.ComponentModel;
	/// <summary>
	/// Represents a databindable, customized view of two dimentional array
	/// </summary>
	public class ArrayDataView	: IBindingList
	{
		#region Variables

		/// <summary>
		/// array rows.
		/// </summary>
		private		ArrayRowView[]	_rows;
		/// <summary>
		/// Data which will be binded.
		/// </summary>
		internal	Array			_data;
		/// <summary>
		/// Alternative column names.
		/// </summary>
		private		string[]		_colnames;	

		#endregion // Variables

		#region Constructors

		/// <summary>
		/// Initializes a new ArrayDataView from array.
		/// </summary>
		/// <param name="array">array of data.</param>
		public ArrayDataView(Array array)
		{
			if (array.Rank != 2)
				throw new ArgumentException("Supports only two dimentional arrays","array");

			_data = array;
		
			_rows = new ArrayRowView[array.GetLength(0)];

			for(int i = 0; i < _rows.Length; i++)
			{
				_rows[i] = new ArrayRowView(this,i);
			}
		}
		
		/// <summary>
		/// Initializes a new ArrayDataView from array with custom column names.
		/// </summary>
		/// <param name="array">array of data.</param>
		/// <param name="colnames">collection of column names.</param>
		public ArrayDataView(Array array, object[] colnames) : this(array)
		{
			if(colnames.Length != array.GetLength(1))
				throw new ArgumentException("column names must correspond to array columns.","colnames");

			_colnames = new string[colnames.Length];
			for(int i = 0; i < colnames.Length; i++)
			{
				_colnames[i] = colnames[i].ToString();
			}
		}

		#endregion // Constructors

//		#region Events
//		public delegate void ValueChangingEventHandler(int row,int col,object value);
//		public event ValueChangingEventHandler ValueChaning;
//
//		internal void OnValueChaning(int row,int col,object value)
//		{
//			if(
//		}
//		
//
//		#endregion // Events

		#region Properties

		internal string[] ColumnNames
		{
			get
			{
				if (_colnames == null)
				{
					_colnames = new string[_data.GetLength(1)];
					for(int i = 0; i < _colnames.Length; i++)
					{
						_colnames[i] = i.ToString();
					}
				}
				return _colnames;
			}
		}

		#endregion // Properties

		#region Methods

		public void Reset()
		{
			OnListChanged(new ListChangedEventArgs(ListChangedType.Reset,-1));
		}

		#endregion 

		#region IBindingList Members

		public void AddIndex(PropertyDescriptor property)
		{
			// TODO:  Add ArrayDataView.AddIndex implementation
		}

		public bool AllowNew
		{
			get
			{
				// TODO:  Add ArrayDataView.AllowNew getter implementation
				return false;
			}
		}

		public void ApplySort(PropertyDescriptor property, System.ComponentModel.ListSortDirection direction)
		{
			// TODO:  Add ArrayDataView.ApplySort implementation
		}

		public PropertyDescriptor SortProperty
		{
			get
			{
				// TODO:  Add ArrayDataView.SortProperty getter implementation
				return null;
			}
		}

		public int Find(PropertyDescriptor property, object key)
		{
			// TODO:  Add ArrayDataView.Find implementation
			return 0;
		}

		public bool SupportsSorting
		{
			get
			{
				// TODO:  Add ArrayDataView.SupportsSorting getter implementation
				return false;
			}
		}

		public bool IsSorted
		{
			get
			{
				// TODO:  Add ArrayDataView.IsSorted getter implementation
				return false;
			}
		}

		public bool AllowRemove
		{
			get
			{
				// TODO:  Add ArrayDataView.AllowRemove getter implementation
				return false;
			}
		}

		public bool SupportsSearching
		{
			get
			{
				// TODO:  Add ArrayDataView.SupportsSearching getter implementation
				return false;
			}
		}

		public System.ComponentModel.ListSortDirection SortDirection
		{
			get
			{
				// TODO:  Add ArrayDataView.SortDirection getter implementation
				return new System.ComponentModel.ListSortDirection ();
			}
		}

		public event System.ComponentModel.ListChangedEventHandler ListChanged;

		private void OnListChanged(ListChangedEventArgs e)
		{
			if (ListChanged != null)
			{
				ListChanged(this,e);
			}
		}

		public bool SupportsChangeNotification
		{
			get
			{
				return true;
			}
		}

		public void RemoveSort()
		{
			// TODO:  Add ArrayDataView.RemoveSort implementation
		}

		public object AddNew()
		{
			// TODO:  Add ArrayDataView.AddNew implementation
			return null;
		}

		public bool AllowEdit
		{
			get
			{
				return true;
			}
		}

		public void RemoveIndex(PropertyDescriptor property)
		{
			// TODO:  Add ArrayDataView.RemoveIndex implementation
		}

		#endregion

		#region IList Members

		public bool IsReadOnly
		{
			get
			{
				return true; // we hold array.
			}
		}

		public object this[int index]
		{
			get
			{
				return _rows[index];
			}
			set
			{
				
			}
		}

		public void RemoveAt(int index)
		{
			// TODO:  Add ArrayDataView.RemoveAt implementation
		}

		public void Insert(int index, object value)
		{
			// TODO:  Add ArrayDataView.Insert implementation
		}

		public void Remove(object value)
		{
			// TODO:  Add ArrayDataView.Remove implementation
		}

		public bool Contains(object value)
		{
			// TODO:  Add ArrayDataView.Contains implementation
			return false;
		}

		public void Clear()
		{
			// TODO:  Add ArrayDataView.Clear implementation
		}

		public int IndexOf(object value)
		{
			// TODO:  Add ArrayDataView.IndexOf implementation
			return 0;
		}

		public int Add(object value)
		{
			// TODO:  Add ArrayDataView.Add implementation
			return 0;
		}

		public bool IsFixedSize
		{
			get
			{
				return true;
			}
		}

		#endregion

		#region ICollection Members

		public bool IsSynchronized
		{
			get
			{
				// TODO:  Add ArrayDataView.IsSynchronized getter implementation
				return false;
			}
		}

		public int Count
		{
			get
			{
				// TODO:  Add ArrayDataView.Count getter implementation
				return _rows.Length;
			}
		}

		public void CopyTo(System.Array array, int index)
		{
			// TODO:  Add ArrayDataView.CopyTo implementation
		}

		public object SyncRoot
		{
			get
			{
				// TODO:  Add ArrayDataView.SyncRoot getter implementation
				return null;
			}
		}

		#endregion

		#region IEnumerable Members

		public System.Collections.IEnumerator GetEnumerator()
		{
			// TODO:  Add ArrayDataView.GetEnumerator implementation
			return _rows.GetEnumerator();
		}

		#endregion
	}// END CLASS DEFINITION ArrayDataView

} // FinData

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -