Как привязать к 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
правильно, но я не знаю какой.