一、collection

  如果设计如下页面

  

  页面模型如下

  

  1. using UnityEngine;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4.  
  5. using MyUtils;
  6.  
  7. public class Product : EZData.Context
  8. {
  9. #region Property Name
  10. #endregion
  11.  
  12. #region Property Price
  13. #endregion
  14.  
  15. #region Property Model
  16. #endregion
  17.  
  18. #region Property PicUrl
  19. #endregion
  20.  
  21. #region Property Pic //Texture2D
  22. #endregion
  23.  
  24. public void SetTexture2D(Texture2D tar) {
  25. Pic = tar;
  26. }
  27.  
  28. //set current product
  29. public void SetCurrentProduct() {
  30. Messenger.Broadcast<Product>(EventSignal.Select_Current_Product.ToString(), this);
  31. }
  32. }
  33.  
  34. public class CommodityPage<T> : EZData.Context
  35. where T : EZData.Context
  36. {
  37. //列的集合
  38. #region Collection Page
  39. #endregion
  40. }
  41.  
  42. public class Category<T> : EZData.Context
  43. where T : EZData.Context
  44. {
  45. //row list
  46. #region Collection Table
  47. #endregion
  48.  
  49. #region Property Name
  50. #endregion
  51.  
  52. public void LoadTable(T[] Array, int PageNum)
  53. {
  54. }
  55. }
  56.  
  57. public class CategroyUi : EZData.Context
  58. {
  59. #region Collection CategoryList
  60. #endregion
  61.  
  62. #region Property NowSelectProduct
  63. #endregion
  64.  
  65. public ICategory_Product_Dao Ca_Pr_dao;
  66.  
  67. public CategroyUi(ICategory_Product_Dao Ca_Pr_dao)
  68. {
  69. this.Ca_Pr_dao = Ca_Pr_dao;
  70.  
  71. List<CategoryBean> mycategorylist = Ca_Pr_dao.getAllCategory();
  72.  
  73. foreach (CategoryBean item in mycategorylist)
  74. {
  75. CategoryList.Add(new Category<Product>() { Name = item.Name });
  76. }
  77.  
  78. for (int i = ; i < mycategorylist.Count; i++)
  79. {
  80. List<ProductBean> collection = Ca_Pr_dao.getProductListByCategoryId(mycategorylist[i].Id);
  81.  
  82. Product[] Product_collection = GetArray(collection);
  83.  
  84. CategoryList.GetItem(i).LoadTable(Product_collection, );
  85. }
  86.  
  87. //使用ngui master path
  88. //path = CategoryList.SelectedItem.Table.SelectedItem.Page.SelectedItem
  89. //这样形式是不可以的,只有CategoryList.SelectedItem 是可以使用的
  90.  
  91. //这里千万不要这么引用
  92. //比如这里引用第一行第一个的数据
  93. //之后你改为第一行第二个的数据
  94. //NowSelectProduct 引用的是第一行第一个 那么第一行第一个的数据也改为第一行第二个
  95. //NowSelectProduct = CategoryList.GetItem(0).Table.GetItem(0).Page.GetItem(0);
  96.  
  97. //新new 一个 不要引用相同的
  98. //一定要对其最开始就进行初始化 之后改变这个类的属性 不能改变这个类的引用
  99. Product tmp = CategoryList.GetItem().Table.GetItem().Page.GetItem();
  100. NowSelectProduct = new Product() { Name = tmp.Name, Price = tmp.Price, Model = tmp.Model, PicUrl = tmp.PicUrl };
  101. Ca_Pr_dao.GetPicureByProductNameOrUrl(NowSelectProduct.Name, NowSelectProduct.PicUrl, NowSelectProduct.SetTexture2D);
  102.  
  103. //监听当前选择的改变
  104. Messenger.AddListener<Product>(
  105. EventSignal.Select_Current_Product.ToString(), SelectCurrentProduct);
  106. }
  107.  
  108. public void SelectCurrentProduct(Product cur)
  109. {
  110. //这里不能改引用 只能赋值
  111. NowSelectProduct.Name = cur.Name;
  112. NowSelectProduct.Price = cur.Price;
  113. NowSelectProduct.Model = cur.Model;
  114. NowSelectProduct.PicUrl = cur.PicUrl;
  115. UnityEngine.Debug.Log("SelectCurrentProduct" + NowSelectProduct.Name);
  116. Ca_Pr_dao.GetPicureByProductNameOrUrl(NowSelectProduct.Name, NowSelectProduct.PicUrl, NowSelectProduct.SetTexture2D);
  117. }
  118.  
  119. #region 功能函数
  120. Product[] GetArray(List<ProductBean> collection)
  121. {
  122. int length = collection.Count;
  123.  
  124. Product[] result = new Product[length];
  125. for (int i = ; i < length; i++)
  126. {
  127. ProductBean tmp = collection[i];
  128. result[i] = new Product() { Name = tmp.Name, Price = tmp.Price, Model = tmp.Size, PicUrl = tmp.PicUrl};
  129. Ca_Pr_dao.GetPicureByProductNameOrUrl(result[i].Name, result[i].PicUrl, result[i].SetTexture2D);
  130. }
  131. return result;
  132. }
  133. #endregion
  134. }
  135.  
  136. public class CategoryViewModel : MonoBehaviour
  137. {
  138. public NguiRootContext View;
  139.  
  140. public CategroyUi Context;
  141.  
  142. public void Init(NguiRootContext View)
  143. {
  144. this.View = View;
  145. Context = new CategroyUi(new CategoryModel());
  146. View.SetContext(Context);
  147. }
  148. }

 

2、关于NguiTextBinding

  拖一个输入框如下:

  Control - Simple Input Field

    -》 Label

  附加脚本如下:

  Control - Simple Input Field

  

  Label

  

  

  ViewModel 对应如下:
  

  1. #region Property MessageLeave
  2. private readonly EZData.Property<string> _privateMessageLeaveProperty
  3. = new EZData.Property<string>();
  4. public EZData.Property<string> MessageLeaveProperty
  5. { get { return _privateMessageLeaveProperty; } }
  6. public string MessageLeave
  7. {
  8. get { return MessageLeaveProperty.GetValue(); }
  9. set { MessageLeaveProperty.SetValue(value); }
  10. }
  11. #endregion
  12.  
  13. public void SendMessage() {
  14. Debuger.Log("LeaveMessage is :"+ MessageLeave);
  15. }

  void SendMessage() 绑定一个按钮,MessageLeave 绑定刚才的label,按钮点击,结果如下

  

  

  但如果只保留label:

  附加脚本如下:

  

  同样的ViewModel,结果如下

  

  可以得到绑定,无语了,这个BUG。还有我建议Text CommitBind 能不用就不用。

三、NguiTextureBinding

  这里要修改一下,如果采用material的话,那么同一个材质的图片都是一样的了。

  

NData BUG 记录的更多相关文章

  1. 【bug记录】OS Lab3 踩坑记

    OS Lab3 踩坑记 Lab3在之前Lab2的基础上,增加了进程建立.调度和中断异常处理.其中测试包括进程建立以及进程调度部分. 由于是第一次做bug记录,而且是调试完bug后再做的记录,所以导致记 ...

  2. 微信小程序bug记录与解决

    微信小程序bug记录 textarea textarea在模拟器上没有padding,可是在真机上会自带padding,而且在外部改不了,并且在安卓和IOS上padding还不一样 第一张图是在开发工 ...

  3. BUG 记录:移位运算与扩展欧几里得算法

    BUG 记录:移位运算与扩展欧几里得算法 起因 上个月就开始打算用C++写一个ECC的轮子(为什么?折磨自己呗!),奈何自己水平有点差,拖到现在才算写完底层的大数运算.在实现欧几里得算法的时候,我开始 ...

  4. ArcGIS 10.1 BUG记录

    声明:笔者使用ARCGIS 10.1 XXX版,YYY版可能没有此处描写的问题 1. 关于注册数据库 发布启用FA的服务,需要为数据库进行ArcGIS Server注册,若通过ArcMap执行注册,会 ...

  5. 前端bug记录---不定时更新

    在项目的开发中难免遇到各种各样的bug,我觉得还是有必要记录一下的,方便日后查询. safari window resize  为满足日常轮播需求,做一个符合当前业务的轮播插件,其中需要考虑windo ...

  6. bug记录-setTimeout、setInterval之IOS7

    本篇文章主要讲查找并分析bug的思路,相关的函数不是本文的重点. 众所周知,setTimeout和setInterval是用来做延迟调用以及周期性调用的方法,他们支持的参数都差不多. setTimeo ...

  7. CDH:5.14.0 中 Hive BUG记录

    CDH5.14.0使用的HIVE版本: 自建表log: +----------------------------------------------------+--+ | createtab_st ...

  8. 【bug记录】OS Lab4 踩坑记

    OS Lab4 踩坑记 Lab4在之前Lab3的基础上,增加了系统调用,难度增加了很多.而且加上注释不详细,开玩笑的指导书,自己做起来困难较大.也遇到了大大小小的bug,调试了一整天. 本文记录笔者在 ...

  9. 前端bug记录

    记录一下前端入门时期遇到的一些bug. 1.同步.异步问题 背景:Javascript语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...

随机推荐

  1. MVC 构造

    // // View.h // UI5_HomeWork // // Created by zhangxueming on 15/7/2. // Copyright (c) 2015年 zhangxu ...

  2. 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出现如下内容:

  3. BZOJ 1631==USACO 2007== POJ 3268 Cow Party奶牛派对

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 19226   Accepted: 8775 Description One ...

  4. 【Sharing】如何成为一名黑客

    [声明]此文为转载,只为收藏. 从小到大听说了无数关于“电脑黑客”的故事,比如XXX入侵美国五角大楼,再比如前几年的“熊猫烧香”病毒,这些故事的主角都被我们的媒体称之为“黑客”.其实这些人,更大程度上 ...

  5. Android开发面试题(一)

    1.String和StringBuffer有什么本质区别? 本质区别:String字符串不可变,每次修改字符串必须要重新赋值(生成新的对象)才能修改:StringBuffer字符串可变,可以直接对字符 ...

  6. Hbase 0.95.2介绍及下载地址

    HBase是一个分布式的.面向列的开源数据库,该技术来源于Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Google文件系统(File System) ...

  7. (转)汉字转拼音HanziToPinyin

    本文转载于:http://blog.csdn.net/zhangphil/article/details/47164665 Android系统本身自带有有将汉字转化为英文拼音的类和方法.具体的类就是H ...

  8. SQLdiag Utility

    使用SQLdiag 会进行信息搜集类型 Windows 系统性能日志 Windows 系统日志 SQL Server 性能信息 SQL Server 阻塞信息 SQL Server 配置信息 如何使用 ...

  9. DBCC Check

    DBCC CHECKDB 可以完成两个任务 (1)检查数据库里有没有损坏发生 (2)尽力修复数据库损坏,是数据能重新被正常访问 DBCC 下列步骤执行下列操作 1.检查一些关键性的表 sysalocu ...

  10. 单例模式(Singleton)的6种实现

    1.1.1 摘要 在我们日常的工作中经常需要在应用程序中保持一个唯一的实例,如:IO处理,数据库操作等,由于这些对象都要占用重要的系统资源,所以我们必须限制这些实例的创建或始终使用一个公用的实例,这就 ...