我有一个复杂的值对象类,它具有1)数字或只读属性; 2)私人构造函数; 3)许多静态单例实例属性[因此ComplexValueObject的属性永不改变,并且在应用程序的生命周期中一次实例化一个单独的值]。XAML绑定到复杂值对象
public class ComplexValueClass
{
/* A number of read only properties */
private readonly string _propertyOne;
public string PropertyOne
{
get
{
return _propertyOne;
}
}
private readonly string _propertyTwo;
public string PropertyTwo
{
get
{
return _propertyTwo;
}
}
/* a private constructor */
private ComplexValueClass(string propertyOne, string propertyTwo)
{
_propertyOne = propertyOne;
_propertyTwo = PropertyTwo;
}
/* a number of singleton instances */
private static ComplexValueClass _complexValueObjectOne;
public static ComplexValueClass ComplexValueObjectOne
{
get
{
if (_complexValueObjectOne == null)
{
_complexValueObjectOne = new ComplexValueClass("string one", "string two");
}
return _complexValueObjectOne;
}
}
private static ComplexValueClass _complexValueObjectTwo;
public static ComplexValueClass ComplexValueObjectTwo
{
get
{
if (_complexValueObjectTwo == null)
{
_complexValueObjectTwo = new ComplexValueClass("string three", "string four");
}
return _complexValueObjectTwo;
}
}
}
我有一个数据上下文类,它看起来是这样的:
public class DataContextClass : INotifyPropertyChanged
{
private ComplexValueClass _complexValueClass;
public ComplexValueClass ComplexValueObject
{
get
{
return _complexValueClass;
}
set
{
_complexValueClass = value;
PropertyChanged(this, new PropertyChangedEventArgs("ComplexValueObject"));
}
}
}
我想编写一个XAML约束力的声明的属性我复杂的值对象上更新UI每当整复杂的价值对象变化。什么是最好的和/或最简洁的做法?我有类似:
<Object Value="{Binding ComplexValueObject.PropertyOne}" />
但用户界面不会更新时ComplexValueObject作为一个整体的变化。
这确实有用。我想知道是否有纯粹的XAML方式来完成同样的事情。 – Gus 2010-06-07 18:03:44
你的意思是根本没有代码,并保持你的数据类是?使用ComplexValueClass类型的依赖项属性编写用户控件,当依赖项属性发生更改时,该属性将自行失效。 – 2010-06-07 20:57:28