Actually, I found out the problem. I did not implement the {PropertyName}Changed event. Add that to my custom editor and it works.
Another issue is my custom editor size does not fit the size of the column. Can you show me the way to make custom editor always fit to the cell?