绑定有关问题,在线求解
绑定问题,在线求解
partial class A:UserControl{
public BaseData fBaseData;
public A(){ this.fBaseData=new BaseData{X=22.0};}
}
class BaseData{
public double X{get;set;}
}
A.xaml:
...
<Rectanel Canvas.Left={Binding Source=fBaseData,Path=X,Model=TwoWay}.../>
...
实际效果上看没有绑定成功是怎么回事??
------解决方案--------------------
fBaseData必须定义为公有属性,而不是类变量,另外BaseData类必须是公有类,用public修饰,做如下改动再试下:
public BaseData fBaseData{get; set;}
。。。
public class BaseData{
public double X{get;set;}
}
------解决方案--------------------
------解决方案--------------------
呵呵,我也要补充的,作为绑定的数据源的属性不一定需要定义为依赖属性的,当然定义为依赖属性也是可以的,只有需要进行绑定的属性才必须定义为依赖属性,比如下面情况fBaseData必须定义为依赖属性:
<myControls:a fBaseData={Binding Property}/>
------解决方案--------------------
partial class A:UserControl{
public BaseData fBaseData;
public BaseData BaseData{get{return this.fBaseData;}set{this.fBaseData=value;}}
public A(){ this.fBaseData=new BaseData{X=22.0};}
}
partial class A:UserControl{
public BaseData fBaseData;
public A(){ this.fBaseData=new BaseData{X=22.0};}
}
class BaseData{
public double X{get;set;}
}
A.xaml:
...
<Rectanel Canvas.Left={Binding Source=fBaseData,Path=X,Model=TwoWay}.../>
...
实际效果上看没有绑定成功是怎么回事??
------解决方案--------------------
fBaseData必须定义为公有属性,而不是类变量,另外BaseData类必须是公有类,用public修饰,做如下改动再试下:
public BaseData fBaseData{get; set;}
。。。
public class BaseData{
public double X{get;set;}
}
------解决方案--------------------
------解决方案--------------------
呵呵,我也要补充的,作为绑定的数据源的属性不一定需要定义为依赖属性的,当然定义为依赖属性也是可以的,只有需要进行绑定的属性才必须定义为依赖属性,比如下面情况fBaseData必须定义为依赖属性:
<myControls:a fBaseData={Binding Property}/>
------解决方案--------------------
partial class A:UserControl{
public BaseData fBaseData;
public BaseData BaseData{get{return this.fBaseData;}set{this.fBaseData=value;}}
public A(){ this.fBaseData=new BaseData{X=22.0};}
}