代码隐藏中的依赖项属性调用
本文关键字:属性 调用 依赖 隐藏 代码 | 更新日期: 2023-09-27 17:59:17
我已经创建了一个带有一些Dependency属性的自定义UserControl
此自定义控件位于窗口上
当我试图从代码背后的DependencyProperty中获取值时,它不起作用。
public static readonly DependencyProperty ValueDp = DependencyProperty.Register("Value", typeof(string), typeof(MyCustomUserControl), new FrameworkPropertyMetadata(string.Empty, OutputHandler));
public string Value
{
get { return (string)GetValue(ValueDp); }
set { SetValue(ValueDp, value); }
}
private static void OutputHandler(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
var temp= dependencyObject as MyCustomUserControl;
if (temp!= null)
{
dependencyObject.SetValue(ValueDp,temp._conversionValue);
}
}
在主机上,我放了一个按钮,当我点击它时,我想读取DP中存储的值,但我总是会得到DP中设置的默认值。
你知道我在这里做错了什么吗?
问候
我认为在OutputHandler
方法中,您总是丢弃分配给属性(dependencyPropertyChangedEventArgs.NewValue
)的新值
正如@Alberto所说,OldValue
和NewValue
是保持DependencyProperty
值的属性。上述属性在dependencyPropertyChangedEventArgs
中找到。在Handler
中,成员dependencyObject
和temp
引用同一对象。