Hi Demin,
I have encountered the same behavior of time-aware GraphicsLayer.
1. Clusters don't change when the value of the time slider changes:
To resolve this problem, I am manually removing/adding the graphics from/to the GraphicsLayer that are not within the Curent Slider Value TimeExtent. To accomplish this I am performing a loop during the ValueChanged event handler of the TimeSlider. Be aware, the OldValue and NewValue of the TimeSlider.ValueChangedEventArgs are reversed. Kind of cumbursome, but it works.
There is the option to use LINQ to SQL to filter the Graphics by the TimeExtent, and assign the result to the Graphics of the GraphicsLayer, but I didn't like the jumping of the graphics on the screen when the new GraphicCollection is assigned. It defeats the purpose of using a time slider to smoothly remove/add graphics.
2. When the count of the graphics is 0, the clusters don't clear:
Same behavior on the GraphicsLayer, and I found out that graphicsLayer.Refresh() fixes the problem. So, you might try to call Refresh during the featureLayer_UpdateCompleted if the count of the graphics is 0.
If you decide to go the way of manually removing/adding graphics, let me know, and I will post the code.
Hope, this will be resolved soon.
Good Luck!