public void UnRegisterFromDataBindStore(DataBindKey key, DataBindElement value)
    {
        if (!m_DataBindStore.ContainsKey(key))
        {
            return;
        }
        List <DataBindElement> list = m_DataBindStore[key];

        list.Remove(value);
    }
    public void RegisterToDataBindStore(DataBindKey key, DataBindElement value)
    {
        if (!m_DataBindStore.ContainsKey(key))
        {
            m_DataBindStore.Add(key, new List <DataBindElement>());
        }
        List <DataBindElement> list = m_DataBindStore[key];

        for (int i = 0; i < list.Count; ++i)
        {
            if (list[i].callBack == value.callBack &&
                list[i].listener == value.listener)
            {
                return;
            }
        }
        list.Add(value);
    }
    public void BindExcution(DataBindKey key, object value)
    {
        List <DataBindElement> tmpList = null;

        if (m_DataBindStore.TryGetValue(key, out tmpList))
        {
            for (int i = 0; i < tmpList.Count; ++i)
            {
                DataBindElement elem = tmpList[i];

                m_TypeHandlerStore[elem.bindType](elem.listener, value);

                if (null != elem.callBack)
                {
                    elem.callBack(value);
                }
            }
        }
    }