WPF依赖项属性返回值
问题描述:
我对WPF相当陌生。WPF依赖项属性返回值
假设我定义了一个int依赖项属性。 DP的目的是返回值+1(参见代码)。 .NET 2.0中,我会写:
private int _myValue = 0;
public int MyValue
{
get { return _myValue + 1; }
set { _myValue = value; }
}
你会如何宣布DP是实现类似的行为?
提供的强制只适用于Set操作。我想修改获取结果。
答
你会间接地实现这样的:
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(int), typeof(OwnerClass),
new FrameworkPropertyMetadata(0, null, new CoerceValueCallback(CoerceValue)));
public int Value
{
get { return (int)GetValue(ValueProperty); }
set { SetValue(ValueProperty, value); }
}
private static object CoerceValue(DependencyObject d, object value)
{
return (int) value + 1;
}
检查这个link约胁迫的解释。
无法过滤依赖项属性值的“get”结果。如果你从对象之外考虑它,那么胁迫就完全符合你的要求,只能用另一种方式。但是,您可以尝试在本地存储预先强制的值。 – 2009-07-20 13:32:18