private void CaretIndexChanged(DependencyPropertyChangedEventArgs e)
{
if (Tokens == null) return;
// CoerceValueCallback is not available in Windows Phone (FrameworkPropertyMetadata is not available)
MoveCaret((int) e.OldValue, (int) e.NewValue);
if (CaretIndex != SelectionEnd)
{
SelectionLength = 0;
CaretIndex = (int) e.NewValue;
}
}