私はビューのテキストボックスにカーソルの位置を決定するカーソル位置プロパティを私のviewmodelに持っていました。どのように私はカーソル位置をテキストボックス内のカーソルの実際の位置にバインドできますか?テキストボックス内のカーソルを扱う
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. AndroidでSQLiteのテーブルとカーソルを扱う
- 2. テキストボックス内のカーソルの点滅を防止する
- 3. テキストボックス内の現在のカーソル位置を取得
- 4. テキストボックス内のカーソル位置を移動する
- 5. テキストボックスでonchangeを扱うときの問題
- 6. フラグメント内の向きを扱う
- 7. forループ内の列名を扱うR
- 8. C#でテキストボックス内のカーソルの列番号を取得するにはどうすればよいですか?
- 9. トリガ内のsybaseカーソル
- 10. 1つのカーソルの内容を別のカーソルに追加
- 11. 他のカーソルでカーソルを使う/ PL/Sql
- 12. カーソルをlwuit内のtextareaにカーソルを合わせる
- 13. 配列内のオブジェクトのように `int`を扱う方法
- 14. X内の多色カーソル
- 15. SQLクエリ内のカーソル値
- 16. 他のテキストボックスにコントロール/カーソルを移動する方法
- 17. カスタムクラス内のステージステージオブジェクト(テキストボックス)
- 18. サービススタックがオブジェクトを内部的にどのように扱うか?
- 19. ボタン内テキストボックス
- 20. テキストボックスとカーソルの高さのテキストの整列
- 21. ASP.NETで検証後にテキストボックスにカーソルを置く
- 22. 投稿内のメディアを扱うためのSonataNewsBundleの設定
- 23. sys_refcursor内のoracleカーソルを使用
- 24. パッケージ内のRデータをどのように扱いますか?
- 25. 単一のfind_by_sql内で複数のSQLクエリを扱う
- 26. ヒープ内のオブジェクトを扱うメンバ関数の使用(C++)
- 27. 1つのテキストボックスの終了イベントから他のテキストボックスへのカーソルのフォーカスを設定する方法
- 28. コントロール内のテキストボックスのクリア
- 29. テキストボックスの内容のスクリーンショット
- 30. コードボックス内のテキストボックスのMaxLengthプロパティ?
返信ありがとうThomas。私はそれを試し、あなたに戻ってきます。 – deepak