4#include "ObservableObject.h"
5#include <unordered_map>
11 class FrameworkElement;
38 std::unordered_map<FieldId, std::unique_ptr<BindingBase>> _bindings{};
122 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:33
bool AddBinding(DataBinding *binding)
添加绑定到DataContext的绑定对象
virtual FrameworkElement * GetParent() const =0
获取父元素
const Property< DynamicObject * > DataContext
数据上下文
Definition FrameworkElement.h:59
bool AddBinding(Binding *binding)
添加绑定对象
const Event< DataContextChangedEventHandler > DataContextChanged
数据上下文改变时触发该事件
Definition FrameworkElement.h:54
virtual int GetChildCount() const =0
获取子元素数量
bool AddBinding(BindingBase *binding)
添加绑定对象
virtual FrameworkElement & GetChildAt(int index) const =0
获取指定索引处的子元素
const ReadOnlyProperty< DynamicObject * > CurrentDataContext
当前元素的有效数据上下文
Definition FrameworkElement.h:65
bool RemoveBinding(TProperty T::*prop)
移除指定属性的绑定对象
Definition FrameworkElement.h:123
bool RemoveBinding(FieldId propertyId)
移除指定属性的绑定对象
virtual void OnCurrentDataContextChanged(DynamicObject *oldDataContext)
当CurrentDataContext更改时调用此函数
FrameworkElement()
初始化FrameworkElement
值转换器接口
Definition IValueConverter.h:14
可观察对象基类,实现属性更改通知功能
Definition ObservableObject.h:14
static FieldId GetFieldId(TField T::*field) noexcept
获取字段的唯一标识符
Definition Reflection.h:1083
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
数据上下文更改事件参数
Definition FrameworkElement.h:16
DynamicObject * oldDataContext
旧的数据上下文值
Definition FrameworkElement.h:20
事件参数结构体
Definition Event.h:286
表示字段的唯一标识符
Definition Reflection.h:1020