Как привязать к CaretIndex ака положение курсора в текстовом поле

Привет я пытаюсь привязать кTextBox.CaretIndex свойство, которое не являетсяDependencyPropertyИтак, я создалBehavior, но это не работает, как ожидалось.

Ожидание (когда сфокусировано)

по умолчанию = 0если я изменю значение в моемПосмотреть это должно изменить значение в моемViewModelесли я изменю значение в моемViewModel это должно изменить значение в моемПосмотреть

Текущее поведение

значение viewmodel вызывается при открытии окна

Код-за

public class TextBoxBehavior : DependencyObject
{
    public static readonly DependencyProperty CursorPositionProperty =
        DependencyProperty.Register(
            "CursorPosition",
            typeof(int),
            typeof(TextBoxBehavior),
            new FrameworkPropertyMetadata(
                default(int),
                new PropertyChangedCallback(CursorPositionChanged)));

    public static void SetCursorPosition(DependencyObject dependencyObject, int i)
    {
        // breakpoint get never called
        dependencyObject.SetValue(CursorPositionProperty, i); 
    }

    public static int GetCursorPosition(DependencyObject dependencyObject)
    {
        // breakpoint get never called
        return (int)dependencyObject.GetValue(CursorPositionProperty);
    }

    private static void CursorPositionChanged(
        DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
    {
        // breakpoint get never called
        //var textBox = dependencyObject as TextBox;
        //if (textBox == null) return;
    }
}

XAML

<TextBox Text="{Binding TextTemplate,UpdateSourceTrigger=PropertyChanged}"
         local:TextBoxBehavior.CursorPosition="{Binding CursorPosition}"/>

Дальнейшая информация

Я думаю, что здесь что-то действительно не так, потому что мне нужно извлечь это изDependencyObject который никогда не был нужен раньше, потому чтоCursorPositionProperty ужеDependencyPropertyтак что этого должно быть достаточно. Я также думаю, что мне нужно использовать некоторые события в моемBehavior установить мойCursorPositionProperty правильно, но я не знаю какой.

Ответы на вопрос(1)

Ваш ответ на вопрос