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语言的执行环境是单线程.即一次只能完成一个任务.若有多个任务则需排队逐个执行——前一个任务完成,再执行后一个任务. ...
随机推荐
- UI1_UIButton
// // AppDelegate.m // UI1_UIButton // // Created by zhangxueming on 15/6/30. // Copyright (c) 2015年 ...
- (转)Yale CAS + .net Client 实现 SSO(2)
第一部分:安装配置 Tomcat 第二部分:安装配置 CAS 1. 下载 CAS 及.NET CAS client. CAS下载地址:http://www.jasig.org/cas/download ...
- 爱莲(iLinkIT)的架构与原理
随着移动互联网时代的到来,手机正在逐步替代其他的设备,手机是电话.手机是即时通讯,手机是相机,手机是导航仪,手机是钱包,手机是音乐播放器……. 除此之外,手机还是一个大大的U盘,曾几何时,我们用一根长 ...
- [Bootstrap]组件(二)
按钮组 .btn-group>.btn : 一组.btn按钮包裹在.btn-group 外包元素.btn-group {position/display/} 按钮元素.btn <div ...
- Socket 广播
1.广播端口 Socket中的广播端口是什么意思,是谁对应谁的? 这个广播端口 指定 客户端接收广播消息时要使用的端口号. 参考: 1.快速Python 原型 2.receive UDP broadc ...
- POJ 2287 Tian Ji -- The Horse Racing(贪心)
题意:田忌和齐王有n匹马,进行n局比赛,每局比赛输者给胜者200,问田忌最多能得多少钱. 分析:如果田忌最下等的马比齐王最下等的马好,是没必要拿最下等的马和齐王最好的马比的.(最上等马同理) 因此,如 ...
- template_12特化与重载
1,重载函数模板f<int*>((int*)pi);//1f<int>((int*)pi);//2上面用int*替换第一个模板的T,用int来替换第二个模板的T.那么将得到两个 ...
- linux远程客户端putty,xshell搭建注意事项——《视频》
本视频放在云端,点击此链接即可播放: http://www.tudou.com/programs/view/75QMh0-DQfA/ 崇尚开源,热 ...
- html5离线应用详摘
html5离线应用详摘 在html文件里配置如下: <html manifest=”name.manifest”> 在name.manifest文件里配置如下: CACHE MANIFES ...
- sublime3 注册码
—– BEGIN LICENSE —– Michael Barnes Single User License EA7E-821385 8A353C41 872A0D5C DF9B2950 AFF6F6 ...