mvvm 模式

2016-02-25 11:37:44来源:CSDN作者:IT_ziliang人点击

       // 
        private SViewModelList _sList;
        public SViewModelList SList
        {
            get
            {
                return this._sList;
            }
            set
            {
                if (this._sList != value)
                {
                    this._sList = value;
                }
                OnPropertyChange("SList");
            }
        }

用的时候:

           this.SList = new SViewModelList();

            this.SList.Read<SViewModel>(e.Result.SchSListResult.Data);


SViewModel.cs文件

{

 public class SViewModelList : PViewModelList     //继承基类
    {
        public SViewModelList()
            : base()
        {
        }

}

  public class SViewModel : PViewModel             //继承基类

{

       private string _mac;
        public string Mac
        {
            get
            {
                return this._mac;
            }
            set
            {
                if (this._mac != value)
                {
                    this._mac = value;
                }
                OnPropertyChange("Mac");
            }
        }

    public override void Read(result_p info)      //重写基类方法
        {
            base.Read(info);
            if (info == null) return;


            SModel m = this._model as SModel;
            result_s i = info as result_s;


            m.Mac = i.mac;

      }

}


基类

{

public class PViewModelList : ViewModelListBase
    {
        public PViewModelList()
            : base()
        {
        }


        public void Read(result_p[] list)
        {
            if (list == null) return;


            foreach (result_p info in list)
            {
                PViewModel point = new PViewModel();
                point.Read(info);
                point.ResetChanges();
                this.Add(point);
            }
        }


        public void Read<T>(result_p[] list) where T : PViewModel, new()                 //where
        {
            if (list == null) return;


            foreach (result_p info in list)
            {
                T p = new T();
                p.Read(info);
                p.ResetChanges();
                this.Add(p);
            }
        }

      }

    public class PViewModel : ViewModelBase
    {

    }

     public virtual void Read(result_p info)
        {
            if (info == null) return;


            this._model.Id = info.id;

        }

}

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台