5#include "ObservableObject.h"
7#include <unordered_map>
13 class FrameworkElement;
41 std::unordered_map<FieldId, std::unique_ptr<BindingBase>> _bindings{};
138 template <
typename T,
typename TProperty>
数据绑定基类
Definition Binding.h:30
数据绑定类
Definition Binding.h:65
数据绑定,用于UI元素与DataContext之间的属性绑定
Definition DataBinding.h:11
动态对象基类
Definition Reflection.h:27
框架元素类,提供数据上下文和绑定功能
Definition FrameworkElement.h:36
bool AddBinding(DataBinding *binding)
添加绑定到DataContext的绑定对象
virtual FrameworkElement * GetParent() const =0
获取逻辑树中的父元素
bool AddBinding(Binding *binding)
添加绑定对象
const Event< DataContextChangedEventHandler > DataContextChanged
数据上下文改变时触发该事件
Definition FrameworkElement.h:62
virtual int GetChildCount() const =0
获取逻辑树中的子元素数量
bool AddBinding(BindingBase *binding)
添加绑定对象
const Property< Variant > Tag
自定义数据标签,可用于存储任意用户数据
Definition FrameworkElement.h:67
virtual FrameworkElement & GetChildAt(int index) const =0
获取逻辑树中指定索引处的子元素
const ReadOnlyProperty< DynamicObject * > CurrentDataContext
当前元素的有效数据上下文
Definition FrameworkElement.h:81
bool RemoveBinding(TProperty T::*prop)
移除指定属性的绑定对象
Definition FrameworkElement.h:139
bool RemoveBinding(FieldId propertyId)
移除指定属性的绑定对象
const Property< Variant > DataContext
数据上下文
Definition FrameworkElement.h:75
virtual void OnCurrentDataContextChanged(DynamicObject *oldDataContext)
当CurrentDataContext更改时调用此函数
virtual Variant GetTag() const override final
获取Tag
FrameworkElement()
初始化FrameworkElement
virtual void SetTag(const Variant &tag) override final
设置Tag
Tag接口
Definition ITag.h:12
值转换器接口
Definition IValueConverter.h:14
可观察对象基类,实现属性更改通知功能
Definition ObservableObject.h:14
static FieldId GetFieldId(TField T::*field) noexcept
获取字段的唯一标识符
Definition Reflection.h:1095
通用变体类型容器,类型擦除地持有任意类型对象
Definition Variant.h:36
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
数据上下文更改事件参数
Definition FrameworkElement.h:18
DynamicObject * oldDataContext
旧的数据上下文值
Definition FrameworkElement.h:22
事件参数结构体
Definition Event.h:286
表示字段的唯一标识符
Definition Reflection.h:1032