我在MyObject类型的DependencyProperty上注册了一个回调通知。在函数中,我从DependencyObject转换为我期望的MyObject类型。这会不会归零?我可以安全地从我的代码中删除空检查吗?
var referralList = CustContext.Referrals.Where(d => d.UserId == membershipUser.Id);
foreach (Referral referral in referralList)
{
referral.UserId = newUser.Id;
CustContext.Entry(referral).State = System.Data.Entity.EntityState.Modified;
}
var result = await CustContext.SaveChangesAsync();
答案 0 :(得分:2)
你可能的意思是:
private static void OnMyObjectChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var obj = d as MyObject;
if (obj != null)
{
...
}
}
只要这不是attached property的PropertyChangedCallback(可能应用于任何派生类型的DependencyObjects),直接将DependencyObject参数强制转换为对象类型是安全的。它是您的属性的回调,WPF从不为任何其他属性调用它。
所以写一下:
private static void OnMyObjectChanged(
DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var obj = (MyObject)d;
...
}