【问题标题】:WPF dependency property return valueWPF依赖属性返回值
【发布时间】:2009-07-20 12:31:54
【问题描述】:

我对 WPF 还很陌生。

假设我定义了一个 int 依赖属性。 DP 的目的是返回值+1(见代码)。 在 .Net 2.0 中,我会写:

private int _myValue = 0;
    public int MyValue
    {
        get { return _myValue + 1; }
        set { _myValue = value; }
    }

您将如何声明实现类似行为的 DP?


提供的强制转换仅适用于 Set 操作。我想修改Get结果。

【问题讨论】:

  • 无法过滤依赖属性值的“get”结果。如果您从对象外部考虑强制转换,则完全按照您的要求执行,只是以另一种方式。但是,您可以尝试在本地存储预先强制转换的值。

标签: c# wpf dependency-properties


【解决方案1】:

你可以这样间接地实现它:

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 了解有关强制的解释。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-23
    • 1970-01-01
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多