1-WooBind-案例

  1. ObservableObject
    1. Subscribe
    2. UnSubscribe
    3. GetProperty
    4. SetProperty
    5. GetProperty
  2. ObservableObjectHandler
    1. Subscribe
    2. UnSubscribe()
  3. BindableObject
    1. Subscribe
    2. UnSubscribe
  4. Subscribe
  5. GetValue
  6. PublishProperty
  7. UnBind

ObservableObject

Subscribe

  • Subscribe函数用于注册数值变化的监听函数。当属性发生变化时,会触发已注册的监听函数。具体使用方式如下:
public void Subscribe(string propertyName, Action listener)
  • propertyName:要监听的属性名称。
  • listener:监听函数,当属性变化时被调用。
Subscribe("Name", () =>
{
    Console.WriteLine("属性Name发生了变化!");
});

UnSubscribe

  • UnSubscribe函数用于取消注册数值变化的监听函数。如果之前通过Subscribe函数注册了一个或多个监听函数,但后来不再需要监听,则可以通过UnSubscribe函数进行取消注册。具体使用方式如下:
public void UnSubscribe(string propertyName, Action listener)
  • propertyName:要取消监听的属性名称。
  • listener:要取消的监听函数。
UnSubscribe("Name", () =>
{
    Console.WriteLine("属性Name发生了变化!");
});

GetProperty

protected T GetProperty<T>(ref T property, [CallerMemberName]string propertyName = "")
  • T:属性值的类型。

  • property:表示要获取的属性的变量的引用。

  • propertyName:表示属性的名称,默认值为调用该方法的成员的名称(通过[CallerMemberName]属性实现)。

  • GetProperty函数用于获取属性的值。它接收一个属性变量的引用以及可选的属性名称。如果使用可选的属性名称参数,则可以在调用时指定属性的名称,例如GetProperty(ref myVariable, “MyProperty”);如果不提供属性名称参数,则默认使用调用该方法的成员的名称作为属性的名称。该函数会返回属性的当前值。

SetProperty

GetProperty

protected void SetProperty<T>(ref T property, T value, [CallerMemberName]string propertyName = "")
  • T:属性值的类型。
  • property:表示要设置的属性的变量的引用。
  • value:表示要设置的属性的新值。
  • propertyName:表示属性的名称,默认值为调用该方法的成员的名称(通过[CallerMemberName]属性实现)。
  • SetProperty函数用于设置属性的值。它接收一个属性变量的引用、新的属性值以及可选的属性名称。如果使用可选的属性名称参数,则可以在调用时指定属性的名称,例如SetProperty(ref myVariable, newValue, “MyProperty”);如果不提供属性名称参数,则默认使用调用该方法的成员的名称作为属性的名称。该函数会更新属性的值,并在值发生变化时发布属性更改通知。

ObservableObjectHandler

Subscribe

internal ObservableObjectHandler Subscribe(ObservableObject _object, string propertyName)
  • ObservableObjectHandler:方法的返回类型为 ObservableObjectHandler,表示该方法将返回一个可观察对象处理器的实例。这个处理器可以用来管理和控制属性变化的监听。

  • _object:ObservableObject 类型的参数 _object 是要订阅的可观察对象实例。你可以将你感兴趣的可观察对象传递给该参数。

  • propertyName:string 类型的参数 propertyName 是要订阅的属性名称。你可以指定你希望监听的特定属性的名称。

  public ObservableObjectHandler Subscribe(ObservableObject _object, string propertyName, Action listener)
  • listener:Action 类型的参数 listener 是一个回调函数,表示在属性变化时要执行的操作。你可以将你希望在属性变化时执行的逻辑封装在这个回调函数中,例如更新 UI、执行其他方法等。

UnSubscribe()

 public void UnSubscribe()
  • 取消所有监听
public void UnSubscribe(ObservableObject _object, string propertyName)
  • 取消符合条件的监听

BindableObject

Subscribe

public void Subscribe(string propertyName, Action<string, object> listener)
  • 注册监听器,订阅属性变化事件。

  • propertyName:要监听的属性名称。

  • listener:当属性变化时要执行的回调方法。

UnSubscribe

public void UnSubscribe(string propertyName, Action<string, object> listener)
  • 移除监听器,取消订阅属性变化事件。

  • propertyName:要取消监听的属性名称。

  • listener:要移除的监听器回调方法。

Subscribe

internal BindableObjectHandler Subscribe(BindableObject _object, Type propertyType, string propertyName)
  • 用于订阅对象的属性变化。
  • _object:需要订阅属性变化的对象。
  • propertyType:属性的数据类型,用于指定要订阅的属性的类型。
  • propertyName:要订阅的属性名称。

GetValue

public T GetValue<T>(string name)
public object GetValue(Type type,string name)
  • 用于获取指定名称的属性值

PublishProperty

   public BindableObjectHandler PublishProperty(Type type,object value, string propertyName)
   public BindableObjectHandler PublishProperty<T>(T value, string propertyName)
  • 用于发布属性的变化,通知所有订阅了该属性的监听者。

UnBind

public void UnBind()
public void UnBind(BindableObject _object)
public void UnBind(string propertyName)
public void UnBind(BindableObject _object, string propertyName)
public void UnBind(BindableObject _object, Type type, string propertyName)
  • 解绑全部绑定的属性。
  • 按照对象解绑属性。
  • 按照属性名称解绑属性。
  • 按照对象和属性名称解绑属性。
  • 按照对象、属性类型和属性名称解绑属性。