2017-02-05 16 views
0

Datagrid columnsvisibilityをヘッダー内のcontext menuから変更する必要があります。すべての列の表示設定は、既定でXAMLコード内に設定されていました。datacontext wpfからすべてのデータグリッド列を表示/非表示

<DataGridTextColumn Visibility="Visible" Binding="{Binding Story}" Header="Story" /> 

ViewModelから各列の可視性をバインドしたくありません。 すべての列が非表示になっている場合は、すべての列の表示をVisibleに設定し、その逆の場合も同様です。すべて列コード内の可視性を拘束せずにXAMLコードから取得できます。

+0

モデルをとり、適切な可視性値を返すIValueConverterを実装するクラスを作成する必要があるように思えます – Gavin

+0

列全体が表示されていない場合、どのようにコンテキストメニューを表示できますか? – mm8

+0

@ mm8空の列を一時的なソリューションとして追加し、1つまたは複数の列を表示するときにそれを削除しました。私はクリックイベントを使用したい、すべての列をループして可視性を設定しました。私はXAMLコードのみを使用したソリューションを探しています。これはMVVMのアプローチではないため、空の列を追加するためではありません。 – IBRA

答えて

1

1つ以上の列を表示するときに空の列を追加して削除しました。クリックイベントを使用したい、すべての列をループして可視性を設定しました。私はXAMLコードのみを使用したソリューションを探しています。

MVVMは、コードを削除することについてではありません。です。それは懸念の分離に関するものです。 XAMLはマークアップ言語です。コントロール自体またはビュー内のDataGridの列を非表示にするコードを追加することは、まったく問題ありません。

関連する問題