SimpleWindow
载入中...
搜索中...
未找到
SelfBinding.h
1#pragma once
2
3#include "Binding.h"
4
5namespace sw
6{
11 {
12 private:
16 std::unique_ptr<Binding> _innerBinding;
17
18 private:
24 : _innerBinding(binding)
25 {
26 }
27
28 public:
33 virtual bool UpdateTarget() override
34 {
35 return _innerBinding->UpdateTarget();
36 }
37
42 virtual bool UpdateSource() override
43 {
44 return _innerBinding->UpdateSource();
45 }
46
50 virtual FieldId GetTargetPropertyId() const override
51 {
52 return _innerBinding->GetTargetPropertyId();
53 }
54
58 virtual FieldId GetSourcePropertyId() const override
59 {
60 return _innerBinding->GetSourcePropertyId();
61 }
62
67 {
68 return _innerBinding->GetBindingMode();
69 }
70
75 {
76 _innerBinding->SetBindingMode(mode);
77 }
78
83 {
84 return _innerBinding->GetTargetObject();
85 }
86
91 {
92 _innerBinding->SetBindingObjects(target, target);
93 }
94
95 public:
105 template <
106 typename TTargetObject,
107 typename TTargetProperty,
108 typename TSourceObject,
109 typename TSourceProperty>
124
134 template <
135 typename TTargetObject,
136 typename TTargetProperty,
137 typename TSourceObject,
138 typename TSourceProperty>
153 };
154}
数据绑定基类
Definition Binding.h:31
数据绑定类
Definition Binding.h:66
动态对象基类
Definition Reflection.h:27
值转换器接口
Definition IValueConverter.h:14
自绑定类,用于同一对象内部属性之间的绑定
Definition SelfBinding.h:11
static auto Create(TTargetProperty TTargetObject::*targetProperty, TSourceProperty TSourceObject::*sourceProperty, BindingMode mode, IValueConverter< typename TSourceProperty::TValue, typename TTargetProperty::TValue > *converter) -> typename std::enable_if< _IsProperty< TTargetProperty >::value &&_IsProperty< TSourceProperty >::value &&std::is_base_of< DynamicObject, TTargetObject >::value &&std::is_base_of< DynamicObject, TSourceObject >::value &&!BindingCastHelper< typename TSourceProperty::TValue, typename TTargetProperty::TValue >::value, SelfBinding * >::type
创建自绑定对象
Definition SelfBinding.h:139
virtual FieldId GetTargetPropertyId() const override
获取目标属性ID
Definition SelfBinding.h:50
static auto Create(TTargetProperty TTargetObject::*targetProperty, TSourceProperty TSourceObject::*sourceProperty, BindingMode mode, IValueConverter< typename TSourceProperty::TValue, typename TTargetProperty::TValue > *converter=nullptr) -> typename std::enable_if< _IsProperty< TTargetProperty >::value &&_IsProperty< TSourceProperty >::value &&std::is_base_of< DynamicObject, TTargetObject >::value &&std::is_base_of< DynamicObject, TSourceObject >::value &&BindingCastHelper< typename TSourceProperty::TValue, typename TTargetProperty::TValue >::value, SelfBinding * >::type
创建自绑定对象
Definition SelfBinding.h:110
virtual bool UpdateSource() override
更新源属性的值
Definition SelfBinding.h:42
BindingMode GetBindingMode() const
获取绑定模式
Definition SelfBinding.h:66
void SetTargetObject(DynamicObject *target)
修改目标对象
Definition SelfBinding.h:90
virtual bool UpdateTarget() override
更新目标属性的值
Definition SelfBinding.h:33
virtual FieldId GetSourcePropertyId() const override
获取源属性ID
Definition SelfBinding.h:58
void SetBindingMode(BindingMode mode)
设置绑定模式
Definition SelfBinding.h:74
DynamicObject * GetTargetObject() const
获取目标对象
Definition SelfBinding.h:82
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
BindingMode
绑定模式枚举
Definition Binding.h:13
Binding默认转换辅助模板
Definition BindingCastHelper.h:20
表示字段的唯一标识符
Definition Reflection.h:1167
判断类型是否为属性的辅助模板
Definition Property.h:95