ユーザーが2つの列を含むWPF/SLグリッドのサイズを変更できるようにしたいとします。ただし、ユーザーが1つの列(「パネル」)または他の列を非表示にできるようにする必要もあります。両方の列(パネル)が表示されている場合は、GridSplitterも表示されている必要があります。そうでなければそうではありません。また、コードビハインドなしでMVVMスタイルのバインディングを使用する必要があります。また、セッション間で設定を保持したい場合もあります。ビューモデルには次のプロパティがあります。
bool IsPanelOneVisible
bool IsPanelTwoVisible
GridLength SplitPosition
では、バインディングのみを使用してこれを配線するにはどうすればよいですか?
ユーザーがGridSplitterをドラッグすると、グリッド列の幅(バインディングまたは自動のいずれかで設定)が上書きされることに注意してください。
私が熟読した投稿(SplitContainerの実装もいくつか含まれています)は、このシナリオに正面から取り組んでいません。コードビハインド(イベントに応答)またはビューモデルの追加プロパティを使用して、これを接続できます。しかし、私はもっとエレガントな解決策を望んでいました。
何か案は?ありがとう!