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操作。我想修改获取结果。

+1

无法过滤依赖项属性值的“get”结果。如果你从对象之外考虑它,那么胁迫就完全符合你的要求,只能用另一种方式。但是,您可以尝试在本地存储预先强制的值。 – 2009-07-20 13:32:18

你会间接地实现这样的:

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约胁迫的解释。