問題タブ [avalondock]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - AvalonDock (2.0) + MVVM + VSPackage = ドキュメント選択の問題?
DockingManager
基になるビュー モデルによって管理される一連のドキュメントを表示するために、AvalonDock (2.0) コントロールを利用するコントロールがあります。
ドキュメント ビュー モデルにはIsSelected
プロパティがあり、ビュー モデルが選択されているときに、ドキュメントを選択して表示したいDockingManager
。これを行うために、次のようにStyle
forを更新しました。LayoutItem
このアプローチは、コントロールが WPF アプリケーション内でホストされている場合は正常に機能しますが、コントロールが VSPackage 内でホストされている場合、ビュー モデルでドキュメントを選択しても、選択したドキュメントが表示されないことがよくあります。以下の画像では、ユーザーが Customer ノードをクリックして編集しましたが、顧客ドキュメントは表示されませんでした。
ビュー モデル レイヤーはIsSelected
期待どおりに設定されており、コントロールが を使用するTabControl
と、選択したドキュメントが常に一番上に表示されました。
AvalonDock 内の問題のようです。私が見つけているのはLayoutItem
、ビューモデルを介して a が選択されている場合、リストの最初のドキュメントがレイヤーで true に再選択され、レイヤーでトリクルアップして true にLayoutDocument/LayoutContent/LayoutElement
リセットされることです。レイヤーでビューモデルにバインドしたいのですが、そのレイヤーにはありません。IsSelected
LayoutItem
IsSelected
LayoutDocument/LayoutContent/LayoutElement
DependencyProperty
ビューモデルにバインドする別の方法を試しましIsSelected
たが、これまでのところ成功していません。他の誰かがこの問題に遭遇しましたか? 回避策やその他のアプローチを知っていますか? ドキュメントの選択を行うためだけに、非 MVVM アプローチを使用する必要はありません。
編集: VSPackage を使用しても、再現テスト ケースを作成するのが難しいため、この問題はわかりにくいようです。ToolWindow
デュアルs と Mediator メッセージを使用して実際のコントロールをシミュレートする次のテスト ケースでは、ドキュメントの選択は正常に機能します。
このテスト ケース (WPF アプリと VSPackage を使用) はこちらから入手できます( をクリックしTools=>My command name
てツール ウィンドウを起動し、1 つのウィンドウにドキュメント タイトルを入力して選択するか、ウィンドウでドキュメントを作成して選択しますDockingManager
)。
c# - AvalonDock DockingManager がレイアウトをロードしない
レイアウトを保存してロードするために、こちらの手順に従いましたが、うまくいきませんでした。
私はこれXAML
を中に持っていMainWindow
ます:
ボタン クリックのイベント ハンドラーは次のとおりです。
ウィンドウが表示されたら、「テスト」ファイルの内容を保存をクリックします。
ここで問題が発生します。読み込みボタンをクリックすると、ドキュメントとアンカー可能なものが消え、ウィンドウに表示されるのは 2 つのボタンと、レイアウトがあるはずの空の四角形だけです。この時点で保存ボタンをクリックすると、これが「テスト」ファイルに書き込まれます。
AvalonDock 2.0.1746.0 を使用しています。誰でもそれを修正する方法を知っていますか?
wpf - WPF。テンプレート セレクターでのコントロール間のバインド
WPF アプリケーションのデータ バインディングに問題があります。状況は次のとおりです。
2 つのコントロールがあります。1 つはツリー ビューで、もう 1 つはリストで選択された項目の詳細ビューです。次のコードですべてが機能していました(バインディング):
選択した項目は、詳細コントロールの依存関係プロパティでした。
現在、Avalondock を使用してレイアウト戦略を変更しています (コード内の avalonDock タグからわかるように)。これは、テンプレート セレクターを使用することを意味します。レイアウトは正しく機能しますが、バインドが壊れています。テンプレート内の各コントロールを含む実際のコードは次のとおりです。
バインディングを更新して再び機能させるにはどうすればよいですか? FindAncestor を試してみましたが成功しませんでした。
編集:
最終的に解決しました。ディーン・チョークが言ったように、私の戦略では私の目標は達成できませんでした。何度か頭を悩ませた後、データモデルをリファクタリングしました。これで、ツリー ビューと詳細ビューを含むビュー モデルができました。AvalonDock 2.0 MVVM サンプルの構造に従っています。
wpf - avalonDock はドッキング中にコンテンツをアンロードします
AvalonDock は、ウィンドウがドッキングまたはドッキング解除で操作されるたびに、ドキュメント ウィンドウのコンテンツをアンロードおよび再ロードするようです。それをオフにすることは可能ですか?
私の場合、ライブ ビデオ ストリームを表示していて、ウィンドウがフロートまたは再ドッキングに設定されている間、再生し続ける必要があります。
また、AvalonDock 2.0 のドキュメントは完全ではないようです。たぶん、私は間違った場所を探しています。codeplex で見つけたのは、AvalonDock 2.0 入門ガイド PART 1 だけです。
c# - Avalondock LayoutDocument のタブ幅を設定する方法
LayoutDocument に表示されるタブには、AA、AB、AC などの短いタイトルが付いています。したがって、それらのタブのサイズは比較的小さいです。
タブの固定幅を手動で設定する方法はありますか?
wpf - AvalonDoc 2 の垂直方向と水平方向
このデザインを実装する方法を知りたいです。この要素が理解できません。
この写真では、要素を下に描きました
c# - AvalonDock 2.0 を使用して自動非表示なしで下部パネルを作成する方法は?
AvalonDock 2.0 を使用しています
かなり基本的なものだと思いますが、ドキュメントには何も書かれていないので、2時間遊んで理解しようとしました。ですから、これが単純すぎる場合は申し訳ありません。
タイトル通りのものが欲しい。ドキュメントには、下側のパネルの作成方法が記載されていますが、自動非表示のパネルのみであり、これは私が望んでいるものではありません。
コードビハインドで自動非表示を切り替えようとしましたが、高さは影響を受けなかったので、アプリケーションを起動するたびに、ユーザーはそれを上にドラッグしてパネルのコンテンツを表示する必要があります。