Example #1
0
 /// <summary>
 /// 这个是根据逻辑State
 /// 转化为渲染Props的部分
 /// 自行处理
 /// 需要注意的是,不要刷新整个页面,只要刷新部分更新的数值即可
 /// </summary>
 /// <param name="server"></param>
 public void StateToProps(Server_HeroData server)
 {
     // this.Props.Name  = server.Name;
     this.Props.Hp    = server.Hp;
     this.Props.MaxHp = server.MaxHp;
     //这里表现出State不一定跟Props完全一样,
     //有些ui的渲染状态,需要根据State算出来
     if (server.Hp < 50)
     {
         this.Props.HpColor = Color.red;
     }
     else
     {
         this.Props.HpColor = Color.blue;
     }
     //提交修改
     this.CommitProps();
 }
Example #2
0
        /// <summary>
        /// 这个是根据逻辑State
        /// 转化为渲染Props的部分
        /// 自行处理
        /// 需要注意的是,不要刷新整个页面,只要刷新部分更新的数值即可
        /// </summary>
        /// <param name="server"></param>
        public void StateToProps(Server_HeroData server)
        {
            //下面逻辑 可以写个函数 批量判断
            if (server.Name != null && this.Props.Name != server.Name)
            {
                this.Props.Name = server.Name;
                this.Props.SetPropertyChange(nameof(Props_HeroData2.Name));
            }

            if (this.Props.Hp != server.Hp)
            {
                this.Props.Hp = server.Hp;
                this.Props.SetPropertyChange(nameof(Props_HeroData2.Hp));
                //这里表现出State不一定跟Props完全一样,
                //有些ui的渲染状态,需要根据State算出来
                if (server.Hp < 50)
                {
                    this.Props.HpColor = Color.red;
                }
                else
                {
                    this.Props.HpColor = Color.blue;
                }

                this.Props.SetPropertyChange(nameof(Props_HeroData2.HpColor));
            }

            if (this.Props.MaxHp != server.MaxHp)
            {
                this.Props.MaxHp = server.MaxHp;
                this.Props.SetPropertyChange(nameof(Props_HeroData2.MaxHp));
            }

            //提交修改
            this.CommitProps();
        }