c# - WPF 依赖属性返回值

标签 c# wpf dependency-properties

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

关于c# - WPF 依赖属性返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153322/

相关文章:

c# - 为依赖属性创建代理

.net - WPF 样式覆盖高度

c# - 对 XML 文件的条件 LINQ 查询

wpf - 对转换后的路径进行不正确的 HitTest

c# - 谁使用 NotifyCollectionChangedEventArgs 的功能?

c# - 如何在不使用 MVVM 的情况下绑定(bind) DependencyProperty

c# - 等待重复下载不可靠?

c# - WPF 类型或命名空间名称 'Browser' 在命名空间 'System.Windows' 中不存在(是否缺少程序集引用?)

c# - 如何只获取没有文件路径的文件名?

c# - 重用样式和模板