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语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...
随机推荐
- JS 提示框 alert()、confirm()、prompt()的三者的区别
使用消息框 使用警告.提示和确认 可以使用警告.确认和提示消息框来获得用户的输入.这些消息框是 window 对象的接口方法.由于 window 对象位于对象层次的顶层,因此实际应用中不必使用这些消息 ...
- linux 系统运行级别及修改[转]
Linux运行级别从0-6,共7个. 0:关机.不能将系统缺省运行级别设置为0,否则无法启动. 1:单用户模式,只允许root用户对系统进行维护. 2:多用户模式,但不能使用NFS(相当于Window ...
- javascript弹窗基础篇
confirm()意既确认框 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> ...
- Linux相关指令
Linux相关指令 1.find文件搜索功能 find [目录列表] [匹配参数] [匹配标准] -name :按文件名称进行搜索 -group :按文件所属组进行搜索 -user :按文件拥有者进行 ...
- MyBatis用嵌套ResultMap实现一对多映射
我的技术博客经常被流氓网站恶意爬取转载.请移步原文:http://www.cnblogs.com/hamhog/p/3959451.html,享受整齐的排版.有效的链接.正确的代码缩进.更好的阅读体验 ...
- VC和VS系列(2005)编译器对双精度浮点溢出的处理
作者:风影残烛 在还原代码的过程中.目前程序是采用VS2005(以上版本)写的. 我使用的是vc6.0,结果.在运算的时候.发现编译器对 // FpuTlxTest.cpp : 定义控制台应用程序的入 ...
- 在 linux x86-64 模式下分析内存映射流程
前言 在上一篇中我们分析了 linux 在 x86-32 模式下的虚拟内存映射流程,本章主要继续分析 linux 在 x86-64 模式下的虚拟内存映射流程. 讨论的平台是 x86-64, 也可以称为 ...
- hadoop数据流转过程分析
hadoop:数据流转图(基于hadoop 0.18.3):通过一个最简单的例子来说明hadoop中的数据流转. hadoop:数据流转图(基于hadoop 0.18.3): 这里使用一个例子说明ha ...
- Apache 的 Rewrite 规则详细介绍
Rewrite标志: R[=code](force redirect) 强制外部重定向 F(force URL to be forbidden) 禁用URL,返回403HTTP状态码 G(force ...
- openerp模块收藏 auto_setup 自动帮你完成建新库时必做几个操作(转载)
auto_setup 自动帮你完成建新库时必做几个操作 原文:http://shine-it.net/index.php/topic,6777.0.html 模块地址: https://github. ...