我在我的視圖模型中有一個遊標位置屬性,它決定了視圖中文本框中游標的位置。我如何將cursorposition屬性綁定到文本框內光標的實際位置。處理文本框內的光標
0
A
回答
1
恐怕你不能...至少,不是直接的,因爲TextBox控件上沒有「CursorPosition」屬性。
您可以通過在代碼隱藏中創建DependencyProperty,綁定到ViewModel以及手動處理光標位置來解決該問題。以下是一個示例:
/// <summary>
/// Interaction logic for TestCaret.xaml
/// </summary>
public partial class TestCaret : Window
{
public TestCaret()
{
InitializeComponent();
Binding bnd = new Binding("CursorPosition");
bnd.Mode = BindingMode.TwoWay;
BindingOperations.SetBinding(this, CursorPositionProperty, bnd);
this.DataContext = new TestCaretViewModel();
}
public int CursorPosition
{
get { return (int)GetValue(CursorPositionProperty); }
set { SetValue(CursorPositionProperty, value); }
}
// Using a DependencyProperty as the backing store for CursorPosition. This enables animation, styling, binding, etc...
public static readonly DependencyProperty CursorPositionProperty =
DependencyProperty.Register(
"CursorPosition",
typeof(int),
typeof(TestCaret),
new UIPropertyMetadata(
0,
(o, e) =>
{
if (e.NewValue != e.OldValue)
{
TestCaret t = (TestCaret)o;
t.textBox1.CaretIndex = (int)e.NewValue;
}
}));
private void textBox1_SelectionChanged(object sender, RoutedEventArgs e)
{
this.SetValue(CursorPositionProperty, textBox1.CaretIndex);
}
}
0
您可以使用CaretIndex屬性。然而,它不是一個DependencyProperty,也沒有實現INotifyPropertyChanged,所以你不能真正綁定它。
相關問題
- 1. 如何使用JavaScript更新文本框內光標位置處的文本
- 2. 在光標處插入文本框中的文本
- 3. 粘貼文本框中光標處的文本行
- 4. 光標描述文本框
- 5. jQuery的文本框焦點()處的任何地方光標
- 6. 如何添加文本框的文本標記和處理事件處理
- 7. VB.NET文本框跟隨鼠標光標
- 8. WinRT - 如何從文本框獲取光標處的行和列?
- 9. 甲骨文PRO * C:取處理光標
- 10. 在文本框中的光標對齊
- 11. vb.net中的文本框光標
- 12. 錯誤處理光標
- 13. 綁定文本框中有光標的按鈕內容
- 14. 文本框事件處理
- 15. 智能文本框處理
- 16. 將光標懸停在文本框上
- 17. WP7 - 文本框光標位置錯誤
- 18. wpf文本框光標滾動
- 19. 樣式文本框光標/插頁
- 20. 文本框有時會丟失光標
- 21. 僅當光標焦點位於文本框內時纔有Javascript
- 22. 添加光標位置的文本的文本框在vb.net
- 23. 在處理中更改鼠標光標
- 24. 將光標設置爲文本框文本的末尾
- 25. 文本框和光標高度中的文本對齊
- 26. 文本框始終把光標放在文本的開頭
- 27. 將文本插入到光標位置的文本框中VB
- 28. SWT光標文本
- 29. 如何爲光標在usercontrol內的文本框內按下「Enter」設置事件
- 30. 如何在光標觸及相關標籤時顯示文本框的內容?
感謝您的回覆托馬斯。我會試試看,並會回覆你。 – deepak 2009-06-11 10:23:48