GFramework/framework/property/IReadonlyBindableProperty.cs
GwWuYou b7b67e6256 refactor(framework): 重构框架命名空间从GFramework到GWFramework
- 将所有文件中的命名空间GFramework替换为GWFramework
- 更新项目文件GFramework.csproj中的包ID和产品名称为GWFramework
- 修改解决方案文件GFramework.sln中项目的引用名称为GWFramework
- 替换LazyThreadSafetyMode的完整命名空间引用
- 统一调整各模块间相互引用的命名空间前缀
2025-12-09 18:17:22 +08:00

38 lines
1.2 KiB
C#

using System;
using GWFramework.framework.events;
namespace GWFramework.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);
}