Like the title says,
If you are writing an event handler for document libraries / lists, properties.AfterProperties is usually a good way for you to get the new values that the user modified.
Now, we all know the fact that in lists you have to use internal name and in libraries you have to use display name, right?
So, it appears it is not the only trick up their sleeve…
If you ever tried getting the title or name columns in a document library you will quickly notice AfterProperties and BeforeProperties will always return null.
Now, I came across this technet discussion: http://social.technet.microsoft.com/Forums/sharepoint/en-US/ef6e1b63-c821-4c6c-b05f-0b1e32ebf073/beforeproperties-and-afterproperties-returns-null-value-in-itemupdating-itemupdated-event?forum=sharepointdevelopmentprevious
And at the very bottom, there is an answer by Helm Ifort that I found very interesting.
It appears the title column value is available in AfterProperties, only you have to use the “vti_title” name for it! (STS 2001 anyone?)
In my book, this is a bug, and an undocumented one at the very least… I hope someone fixes it soon, but for now it is one of those things seasoned SharePoint sharks need to remember.
Hope this helps