public EditImageForm(FileAccessBase fileAccess, List <AnalyseRecord> vm, int index)
            : this()
        {
            m_FileAccess = fileAccess;
            m_Records    = vm;

            m_VM = new ViewResultImageViewModel(m_Records, index);

            this.ucEditImageCtrl.Init(m_VM);

            this.ucEditImageCtrl.ZoomRateChanged         += new EventHandler(ucEditImageCtrl_ZoomRateChanged);
            this.m_VM.PageInfo.SelectedPageNumberChanged += new EventHandler(DetailViewPageInfo_SelectedPageNumberChanged);

            //  暂时注释掉, 因为现在的机制需要换掉  SearchResultSingleViewModel
            Framework.Container.Instance.VVMDataBindings.AddBinding(this.btnNext,
                                                                    "Enabled", m_VM.PageInfo, "CanNextPage");

            Framework.Container.Instance.VVMDataBindings.AddBinding(this.btnPrevious,
                                                                    "Enabled", m_VM.PageInfo, "CanPrePage");

            //Framework.Container.Instance.VVMDataBindings.AddBinding(this.btnNext,
            // "Enabled", m_VM.DetailViewPageInfo, "CanNextPage");

            //Framework.Container.Instance.VVMDataBindings.AddBinding(this.btnPrevious,
            // "Enabled", m_VM.DetailViewPageInfo, "CanPrePage");

            Framework.Container.Instance.VVMDataBindings.AddBinding(this.lblCtrlPageNumber,
                                                                    "Text", m_VM.PageInfo, "DisplayIndex");

            Framework.Container.Instance.VVMDataBindings.AddBinding(this.lblCtrlPageCount,
                                                                    "Text", m_VM.PageInfo, "PageCount");

            ucEditImageCtrl.SplitPositionChanged += new Action <int>(ucEditImageCtrl_SplitPositionChanged);
        }
        //private List<Tuple<PropertyInfo, string>> GetProperties(SearchResultRecord record)
        //{
        //    List<Tuple<PropertyInfo, string>> psRet = new List<Tuple<PropertyInfo, string>>();

        //    PropertyInfo[] properties = record.GetType().GetProperties();

        //    if (properties != null && properties.Length > 0)
        //    {
        //        string description;
        //        SearchResultPropertyAttribute attr;
        //        foreach (PropertyInfo p in properties)
        //        {
        //            object[] objs = p.GetCustomAttributes(typeof(SearchResultPropertyAttribute), false);
        //            if (objs != null && objs.Length > 0)
        //            {
        //                attr = (SearchResultPropertyAttribute)objs[0];
        //                if (record.IsVehicleSearchResult)
        //                {
        //                    if (attr.AvailableMode == AvailableMode.NonVehicle)
        //                    {
        //                        continue;
        //                    }
        //                }
        //                else
        //                {
        //                    if (attr.AvailableMode == AvailableMode.Vehicle)
        //                    {
        //                        continue;
        //                    }
        //                }

        //                description = ((SearchResultPropertyAttribute)objs[0]).DisplayName;
        //                if (string.CompareOrdinal(description, "相似度") == 0 && !m_resultSummary.IsSimilaritySearch)
        //                {
        //                    continue;
        //                }
        //                psRet.Add(new Tuple<PropertyInfo, string>(p, description));
        //            }
        //        }
        //    }
        //    return psRet;
        //}

        //private void ShowCirularProgress(bool show)
        //{
        //    //ShowCirularProgress(circularProgress1, picEditOriginal, show);
        //    //ShowCirularProgress(circularProgress2, picEditThumb, show);
        //}

        //private void UpdateCircularPosition(CircularProgress circular)
        //{
        //    //int x = circular.Parent.Width / 2;
        //    //int y = circular.Parent.Height / 2;
        //    //circular.Location = new System.Drawing.Point(x - circular.Width / 2, y - circular.Height / 2);
        //}

        #endregion

        #region Internal helper functions

        //internal void SwitchRecord(SearchResultSingleSummary summary, SearchResultRecord record)
        //{
        //    m_resultSummary = summary;
        //    Record = record;
        //}

        internal void Init(ViewResultImageViewModel viewModel)
        {
            gridControl1.DataSource = viewModel.DTSummary;
        }