template struct EE::UI::UIBindingGroup::PropertyEntry

template <typename T>
struct PropertyEntry: public EE::UI::UIBindingGroup::Entry {
    // fields

    UIProperty<T>::WeakHandle handle;
    std::optional<T> baseline;
    UIValueValidationResult currentValidation;
    UIProperty<T>::Connection valueConnection;
    ObservableValue<bool>::Connection lifetimeConnection;

    // construction

    PropertyEntry(UIProperty<T>& property, UIBindingGroup* group);

    // methods

    bool isValid() const;
    bool isDirty() const;
    UIWidget* widget() const;
    void appendWidgets(Widgets& widgets) const;
    const UIValueValidationResult& validation() const;
    void markClean();
    void reset();
};