用处以及缺陷
Mvvm 框架中有一个很重要的思想就是数据绑定,比如某一个数据改变了,有许多界面上的东西也要相应的改变,这个时候就可以在不同的地方写一个方法,将这个方法绑定到某个数据上,当数据发生改变时,将触发调用所有绑定在这个数据身上的方法
这里有一个不如意的地方,一个数据可以被多个方法绑定没问题的,但是如果一个方法绑定了多个数据,那么每当其中一个数据变动,那么就会调用这个方法,所以一个数据的变动直接决定了一个方法的调用结果,无法由多绑定的那多个数据变化结果来共同改变这个方法的执行.
设计思路
创建一个类 class BindableProperty <T>
需要被绑定的数据有可能是多种类型,所以创建的类用了泛型 <T>
创建一个委托类型
public delegate void ValueChangedHandler(T oldValue, T newValue);
类中有一个泛型数据用来储存我们需要绑定的数据
private T mValue;
类中有一个委托列表,这个列表用来存储绑定数据的所有的委托
private ValueChangedHandler OnValueChanged;
会被绑定的数据一般会写在代理中,以方便各个地方读取
public BindableProperty<Int> ==modulValue== = new BindableProperty<Int>(1);
上代码
using System.Collections.Generic;
public class BindableProperty<T>
{
public delegate void ValueChangedHandler(T oldValue, T newValue);
private ValueChangedHandler OnValueChanged;
public BindableProperty(T value)
{
mValue = value;
}