複数のGridViewColumnを含むListViewがあります。いくつかの列はチェックボックスです。各列ヘッダーは、その列のすべてのチェックボックスをオンまたはオフにするという目的で、チェックボックスで構成されています。各行のチェックボックスは、ビューモデルのプロパティにバインドされています。私はシナリオがチェックボックスの単一の列であるいくつかの投稿を見てきましたが、私はチェックボックスの4列を持っているので、それらのソリューションのどれも私のために働くことはありません。 1回の訪問から次の訪問まで選択の状態を維持する必要もあります(すべて、列内のチェックボックスの一部またはすべてをチェックできます)。複数のチェックボックス列があり、すべての列ヘッダーが選択されたWPF GridView
<ListView ItemsSource="{Binding AveragingParameters}">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Parameter">
<GridViewColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<TextBlock Text="{Binding Name}" />
</DockPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<CheckBox x:Name="chkAvg" IsChecked="{Binding CalcAverage}" />
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
<Grid>
<CheckBox x:Name="chkAvgSelectAll" Content="Avg" ToolTip="Select All" />
</Grid>
</GridViewColumn>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<CheckBox x:Name="chkMin" IsChecked="{Binding CalMin}" />
</Grid>
</DataTemplate>
</GridViewColumn.CellTemplate>
<Grid>
<CheckBox x:Name="chkMinSelectAll" Content="Min" ToolTip="Select All" />
</Grid>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
私は、コマンドとコマンドパラメータを使用してみましたCheckedプロパティのイベントをにPropertyChanged、そして背後にある私のコードでチェックイベントを処理しました:ここ
は私のListViewのためのXAMLの簡略版ですしかし、私が縛られているコレクションで何を変えるべきかを知るための十分な情報は得られません。
それぞれ別々のイベントハンドラを作成することができますが、可能であれば、単一のイベントハンドラでこれを処理できるようにしたいと思います。最終的には、もっと複雑なカスタムコントロールを作成するためです表示される列の点で事前
ユーザが 'chkAvgSelectAll'または' chkMinSelectAll'をチェックまたはチェック解除するときに、 'AveragingParameters'でどのような変更が必要かを知りたいですか? –
私はビューモデルにリンクする方法を理解し、AveragingParametersコレクション内の各アイテムにどのブール値プロパティを適用する必要があるかを判断しようとしています。 H.B.のポストは、チケットであるかもしれません。 – KyleLib
私はこの問題を理解しているかどうかはわかりません。 ModelView内の個々のプロパティ/フィールドに各列をバインドすると、そのチェックボックスの状態が変更されると、基になるバインドされたオブジェクトも変更されます。バインディングを介してどのブール値のプロパティを明示的に決定する必要はありません。たぶん私はその質問を理解していないかもしれません。 – SRM