GFramework/framework/property/IReadonlyBindableProperty.cs
GwWuYou da3941d6af refactor(framework): 重构框架命名空间和项目名称
- 将所有 GWFramework 命名空间重命名为 GFramework
- 更新解决方案文件中的项目名称和路径引用
- 修改项目文件中的 PackageId、Product 和 URL 配置
- 统一框架内各模块的命名空间前缀为 GFramework
- 调整根命名空间配置以匹配新的项目结构
2025-12-09 18:28:55 +08:00

37 lines
1.2 KiB
C#

using GFramework.framework.events;
namespace GFramework.framework.property;
/// <summary>
/// 只读可绑定属性接口,提供属性值的读取和变更监听功能
/// </summary>
/// <typeparam name="T">属性值的类型</typeparam>
public interface IReadonlyBindableProperty<out T> : IEasyEvent
{
/// <summary>
/// 获取属性的当前值
/// </summary>
T Value { get; }
/// <summary>
/// 注册属性值变更回调,并立即执行一次初始值的回调
/// </summary>
/// <param name="action">属性值变更时执行的回调函数,参数为新的属性值</param>
/// <returns>用于取消注册的句柄对象</returns>
IUnRegister RegisterWithInitValue(Action<T> action);
/// <summary>
/// 取消注册属性值变更回调
/// </summary>
/// <param name="onValueChanged">要取消注册的回调函数</param>
void UnRegister(Action<T> onValueChanged);
/// <summary>
/// 注册属性值变更回调
/// </summary>
/// <param name="onValueChanged">属性值变更时执行的回调函数,参数为新的属性值</param>
/// <returns>用于取消注册的句柄对象</returns>
IUnRegister Register(Action<T> onValueChanged);
}