依赖项属性更改的回调是否会返回意外的依赖项对象
本文关键字:依赖 返回 意外 对象 回调 属性 是否 | 更新日期: 2023-09-27 18:36:01
我在 MyObject 类型的 DependencyProperty 上注册回调通知。 在该函数中,我执行从 DependencyObject 到我预期的 MyObject 类型的强制转换。 这会返回空吗? 我可以安全地从代码中删除空检查吗?
private static void OnMyObjectChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
MyObject obj = d as MyObject;
if (obj != null) // Is this check needed? Will it ever be null?
{
...
}
}
你可能的意思是:
private static void OnMyObjectChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var obj = d as MyObject;
if (obj != null)
{
...
}
}
只要这不是附加属性的 PropertyChangedCallback(可能应用于任何派生类型的 DependencyObjects),就可以安全地将 DependencyObject 参数直接强制转换为对象类型。它是属性的回调,WPF 从不为任何其他属性调用它。
所以只需写:
private static void OnMyObjectChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var obj = (MyObject)d;
...
}