NData BUG 记录
一、collection
如果设计如下页面
页面模型如下
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using MyUtils;
- public class Product : EZData.Context
- {
- #region Property Name
- #endregion
- #region Property Price
- #endregion
- #region Property Model
- #endregion
- #region Property PicUrl
- #endregion
- #region Property Pic //Texture2D
- #endregion
- public void SetTexture2D(Texture2D tar) {
- Pic = tar;
- }
- //set current product
- public void SetCurrentProduct() {
- Messenger.Broadcast<Product>(EventSignal.Select_Current_Product.ToString(), this);
- }
- }
- public class CommodityPage<T> : EZData.Context
- where T : EZData.Context
- {
- //列的集合
- #region Collection Page
- #endregion
- }
- public class Category<T> : EZData.Context
- where T : EZData.Context
- {
- //row list
- #region Collection Table
- #endregion
- #region Property Name
- #endregion
- public void LoadTable(T[] Array, int PageNum)
- {
- }
- }
- public class CategroyUi : EZData.Context
- {
- #region Collection CategoryList
- #endregion
- #region Property NowSelectProduct
- #endregion
- public ICategory_Product_Dao Ca_Pr_dao;
- public CategroyUi(ICategory_Product_Dao Ca_Pr_dao)
- {
- this.Ca_Pr_dao = Ca_Pr_dao;
- List<CategoryBean> mycategorylist = Ca_Pr_dao.getAllCategory();
- foreach (CategoryBean item in mycategorylist)
- {
- CategoryList.Add(new Category<Product>() { Name = item.Name });
- }
- for (int i = ; i < mycategorylist.Count; i++)
- {
- List<ProductBean> collection = Ca_Pr_dao.getProductListByCategoryId(mycategorylist[i].Id);
- Product[] Product_collection = GetArray(collection);
- CategoryList.GetItem(i).LoadTable(Product_collection, );
- }
- //使用ngui master path
- //path = CategoryList.SelectedItem.Table.SelectedItem.Page.SelectedItem
- //这样形式是不可以的,只有CategoryList.SelectedItem 是可以使用的
- //这里千万不要这么引用
- //比如这里引用第一行第一个的数据
- //之后你改为第一行第二个的数据
- //NowSelectProduct 引用的是第一行第一个 那么第一行第一个的数据也改为第一行第二个
- //NowSelectProduct = CategoryList.GetItem(0).Table.GetItem(0).Page.GetItem(0);
- //新new 一个 不要引用相同的
- //一定要对其最开始就进行初始化 之后改变这个类的属性 不能改变这个类的引用
- Product tmp = CategoryList.GetItem().Table.GetItem().Page.GetItem();
- NowSelectProduct = new Product() { Name = tmp.Name, Price = tmp.Price, Model = tmp.Model, PicUrl = tmp.PicUrl };
- Ca_Pr_dao.GetPicureByProductNameOrUrl(NowSelectProduct.Name, NowSelectProduct.PicUrl, NowSelectProduct.SetTexture2D);
- //监听当前选择的改变
- Messenger.AddListener<Product>(
- EventSignal.Select_Current_Product.ToString(), SelectCurrentProduct);
- }
- public void SelectCurrentProduct(Product cur)
- {
- //这里不能改引用 只能赋值
- NowSelectProduct.Name = cur.Name;
- NowSelectProduct.Price = cur.Price;
- NowSelectProduct.Model = cur.Model;
- NowSelectProduct.PicUrl = cur.PicUrl;
- UnityEngine.Debug.Log("SelectCurrentProduct" + NowSelectProduct.Name);
- Ca_Pr_dao.GetPicureByProductNameOrUrl(NowSelectProduct.Name, NowSelectProduct.PicUrl, NowSelectProduct.SetTexture2D);
- }
- #region 功能函数
- Product[] GetArray(List<ProductBean> collection)
- {
- int length = collection.Count;
- Product[] result = new Product[length];
- for (int i = ; i < length; i++)
- {
- ProductBean tmp = collection[i];
- result[i] = new Product() { Name = tmp.Name, Price = tmp.Price, Model = tmp.Size, PicUrl = tmp.PicUrl};
- Ca_Pr_dao.GetPicureByProductNameOrUrl(result[i].Name, result[i].PicUrl, result[i].SetTexture2D);
- }
- return result;
- }
- #endregion
- }
- public class CategoryViewModel : MonoBehaviour
- {
- public NguiRootContext View;
- public CategroyUi Context;
- public void Init(NguiRootContext View)
- {
- this.View = View;
- Context = new CategroyUi(new CategoryModel());
- View.SetContext(Context);
- }
- }
2、关于NguiTextBinding
拖一个输入框如下:
Control - Simple Input Field
-》 Label
附加脚本如下:
Control - Simple Input Field
Label
ViewModel 对应如下:
- #region Property MessageLeave
- private readonly EZData.Property<string> _privateMessageLeaveProperty
- = new EZData.Property<string>();
- public EZData.Property<string> MessageLeaveProperty
- { get { return _privateMessageLeaveProperty; } }
- public string MessageLeave
- {
- get { return MessageLeaveProperty.GetValue(); }
- set { MessageLeaveProperty.SetValue(value); }
- }
- #endregion
- public void SendMessage() {
- Debuger.Log("LeaveMessage is :"+ MessageLeave);
- }
void SendMessage() 绑定一个按钮,MessageLeave 绑定刚才的label,按钮点击,结果如下
但如果只保留label:
附加脚本如下:
同样的ViewModel,结果如下
可以得到绑定,无语了,这个BUG。还有我建议Text CommitBind 能不用就不用。
三、NguiTextureBinding
这里要修改一下,如果采用material的话,那么同一个材质的图片都是一样的了。
NData BUG 记录的更多相关文章
- 【bug记录】OS Lab3 踩坑记
OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...
- 微信小程序bug记录与解决
微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...
- BUG 记录:移位运算与扩展欧几里得算法
BUG 记录:移位运算与扩展欧几里得算法 起因 上个月就开始打算用C++写一个ECC的轮子(为什么?折磨自己呗!),奈何自己水平有点差,拖到现在才算写完底层的大数运算.在实现欧几里得算法的时候,我开始 ...
- ArcGIS 10.1 BUG记录
声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...
- 前端bug记录---不定时更新
在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize 为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑windo ...
- bug记录-setTimeout、setInterval之IOS7
本篇文章主要讲查找并分析bug的思路,相关的函数不是本文的重点. 众所周知,setTimeout和setInterval是用来做延迟调用以及周期性调用的方法,他们支持的参数都差不多. setTimeo ...
- CDH:5.14.0 中 Hive BUG记录
CDH5.14.0使用的HIVE版本: 自建表log: +----------------------------------------------------+--+ | createtab_st ...
- 【bug记录】OS Lab4 踩坑记
OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...
- 前端bug记录
记录一下前端入门时期遇到的一些bug. 1.同步.异步问题 背景:Javascript语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...
随机推荐
- MVC 构造
// // View.h // UI5_HomeWork // // Created by zhangxueming on 15/7/2. // Copyright (c) 2015年 zhangxu ...
- Tomcat7出现HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
今天在Tomcat7上发布了一个war,过一阵子发现localhost:8080都进不去了.在浏览器输入http://localhost:8080出现如下内容:
- BZOJ 1631==USACO 2007== POJ 3268 Cow Party奶牛派对
Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19226 Accepted: 8775 Description One ...
- 【Sharing】如何成为一名黑客
[声明]此文为转载,只为收藏. 从小到大听说了无数关于“电脑黑客”的故事,比如XXX入侵美国五角大楼,再比如前几年的“熊猫烧香”病毒,这些故事的主角都被我们的媒体称之为“黑客”.其实这些人,更大程度上 ...
- Android开发面试题(一)
1.String和StringBuffer有什么本质区别? 本质区别:String字符串不可变,每次修改字符串必须要重新赋值(生成新的对象)才能修改:StringBuffer字符串可变,可以直接对字符 ...
- Hbase 0.95.2介绍及下载地址
HBase是一个分布式的.面向列的开源数据库,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System) ...
- (转)汉字转拼音HanziToPinyin
本文转载于:http://blog.csdn.net/zhangphil/article/details/47164665 Android系统本身自带有有将汉字转化为英文拼音的类和方法.具体的类就是H ...
- SQLdiag Utility
使用SQLdiag 会进行信息搜集类型 Windows 系统性能日志 Windows 系统日志 SQL Server 性能信息 SQL Server 阻塞信息 SQL Server 配置信息 如何使用 ...
- DBCC Check
DBCC CHECKDB 可以完成两个任务 (1)检查数据库里有没有损坏发生 (2)尽力修复数据库损坏,是数据能重新被正常访问 DBCC 下列步骤执行下列操作 1.检查一些关键性的表 sysalocu ...
- 单例模式(Singleton)的6种实现
1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就 ...