MVVMパターンでは、 RichTextBox内のハイパーリンクのクリックイベントにICommandを動的にバインドする方法はありますか?richtextbox内のWPFハイパーリンクをコマンドにバインドする方法は?
答えて
そこに行くにはいくつかのステップがありますが、それを行うことができます。
バインド可能なものではなく、バインド可能なリッチテキストボックスを使用する必要があります。ここでの詳細:http://michaelsync.net/2009/06/09/bindable-wpf-richtext-editor-with-xamlhtml-convertor
これを取得すると、ViewModelのFlowDocumentにバインドできるリッチテキストエディタが用意されます。
あなたFlowDocumentが作成され、あなたのViewModelにHyperlink.ClickEventのハンドラをフックアップ:
ここFlowDocにハンドラを追加し、コール
TheDocument.AddHandler(Hyperlink.ClickEvent,
new RoutedEventHandler(HandleHyperlinkClick));
//Here's the handler definition
private void HandleHyperlinkClick(object sender, RoutedEventArgs args)
{
Hyperlink link = args.Source as Hyperlink;
//...
}
これはです私が今までに見たことだけです。 FlowDocumentsはデータ型と並べ替えの視覚的要素のようなものであるため、少し奇妙です。つまり、ViewModelに存在させるのは間違っていると感じますが、これが道です。
私は今これを試していますが、リンクをクリックすると何も起こりません!カーソルは手に変更されません...どんな助け? – bluebit
私はあなたがAddHandlerコールを見逃しているかもしれないと思いますか?書式を変更して見やすくしました。 –
ありがとうございました!しかし、ハイパーリンクをクリックするとURLが2回表示されます。どうしましたか? –
wpfデータバインディングを使用できない多くのシナリオがあります。これらのシナリオでは、新しいコントロール(RichTextBoxから継承するなど)を作成し、欠落している依存プロパティを提供してデータバインディングを使用することができます。
ただし、単純なシナリオを処理するための新しいコントロールを作成するのは非効率的です。 Viewのコードビハインドファイルにコードを実装することは禁じられていません。新しいコントロールを作成するよりも、これはしばしば理にかなっています。
これを行う方法を具体的な例は、プロジェクトのViewModelにサンプルに示されている:
WPFアプリケーションフレームワーク(WAF)テキストが移入されている方法
- 1. RichTextBoxのクリックイベントでのWPFハイパーリンク
- 2. WPFでコマンドをバインドする方法
- 3. RichTextBoxハイパーリンク
- 4. RichTextBoxのハイパーリンクで独自のプロトコルを使用する方法は?
- 5. WPFでRichTextBoxを使用する方法
- 6. WPF MenuItem:SubMenuItemコマンドをその親MenuItemにバインドする方法
- 7. CTRL-WPFを押さずにRichTextBoxでハイパーリンクをクリック
- 8. C#WPFでMenuItemにコマンドをバインドする方法
- 9. RichTextBoxのハイパーリンクをクリックしてイベントを処理する方法
- 10. ViewModelコマンドをWPF DataGridにバインドする
- 11. 内容に応じたWPFサイズのRichTextBox
- 12. コード内のWPF DataGridでデータをバインドする方法は?
- 13. wpfの別のページからrichtextboxテキストにアクセスする方法
- 14. WPFリストボックス:データをバインドする方法は?
- 15. TreeView内のWPF RichTextBoxのストレッチ幅
- 16. コンボボックスをツールチップwpfにバインドする方法
- 17. C#のRichTextBoxをSliderコントロールにバインドする
- 18. リストボックスデータテンプレートのリストビューをバインドする方法WPF
- 19. リフト:サーバサイドのメソッドにハイパーリンクをバインドする方法
- 20. Extended WPF ToolkitのColorPicker.SelectedColorChangedイベントを現在のRichTextBoxに送信する方法は?
- 21. WPF DataGrid:カスタムプロパティにバインドする方法
- 22. WPF RichTextBoxと '\ t'
- 23. WPF RichTextBox GetCharacterRect
- 24. Autogrow WPF RichTextBox
- 25. WPF RichTextBoxカスタムテキストプロパティ
- 26. WPF RichTextBoxで挿入モードを強制する方法
- 27. 前のテキストを変更せずにWPF RichTextBoxのFontFamilyを変更する方法
- 28. Xtended WPF Toolkit WizardのCurrentPageをMVVMにバインドする方法は?
- 29. コレクションを拡張WPFツールキットのDropdownButtonにバインドする方法は?
- 30. WPFのComboBoxItemへのコマンドのバインド
? –