template class EE::UI::UIDataBind
#include <uidatabind.hpp>
template <typename T>
class UIDataBind {
public:
// structs
struct Converter;
// fields
std::function<void(const T&newVal)> onValueChangeCb;
// construction
UIDataBind();
UIDataBind(T* t, const std::set<UIWidget*>& widgets, const Converter& converter = UIDataBind<T>::converterDefault(), const std::string& valueKey = "value", const Event::EventType& eventType = Event::OnValueChange);
UIDataBind(T* t, UIWidget* widget, const Converter& converter = UIDataBind<T>::converterDefault(), const std::string& valueKey = "value", const Event::EventType& eventType = Event::OnValueChange);
~UIDataBind();
// methods
static Converter converterDefault();
static Converter converterString();
static Converter converterBool();
static std::unique_ptr<UIDataBind<T>> New(T* t, const std::set<UIWidget*>& widgets, const Converter& converter = UIDataBind<T>::converterDefault(), const std::string& valueKey = "value", const Event::EventType& eventType = Event::OnValueChange);
static std::unique_ptr<UIDataBind<T>> New(T* t, UIWidget* widget, const Converter& converter = UIDataBind<T>::converterDefault(), const std::string& valueKey = "value", const Event::EventType& eventType = Event::OnValueChange);
void init(T* t, const std::set<UIWidget*>& widgets, const Converter& converter = UIDataBind<T>::converterDefault(), const std::string& valueKey = "value", const Event::EventType& eventType = Event::OnValueChange);
void set(const T& t);
const T& get() const;
void reset();
void bind(UIWidget* widget);
void unbind(UIWidget* widget);
const PropertyDefinition* getPropertyDefinition() const;
const std::set<UIWidget*>& getWidgets() const;
};