2

DataGridTemplateColumnヘッダーに CheckBox を表示するために を使用しています。チェックボックスは、対立遺伝子細胞が存在するかどうかを表示し、checkedすべての細胞をチェックする (チェックを外す) ために使用されます。

XAML:

    <DataGridTemplateColumn>
                <DataGridTemplateColumn.Header>
                    <CheckBox IsChecked="{Binding Path=DataContext.AreAllVehiclesChecked, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl, AncestorLevel=1}}" Command="{Binding Path=DataContext.ChangeAllItemsSelectedCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" IsThreeState="False" />   
                    </DataGridTemplateColumn.Header>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay}" Command="{Binding Path=DataContext.ChangeItemSelectionCommand, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl,AncestorLevel=1}}" CommandParameter="{Binding }"></CheckBox>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

エラーメッセージ:

System.Windows.Data エラー: 40: BindingExpression パス エラー: 'IsSearchSelected' プロパティが 'object' ''CheckBox' (Name='')' に見つかりません。BindingExpression:Path=IsSearchSelected; DataItem='CheckBox' (Name=''); ターゲット要素は 'CheckBox' (Name='') です。ターゲット プロパティは 'IsChecked' (タイプ 'Nullable`1') です

System.Windows.Data エラー: 40: BindingExpression パス エラー: 'CreateProjectFromSelectedVehiclesDemandedCommand' プロパティが 'object' ''CheckBox' (Name='')' に見つかりません。BindingExpression:Path=CreateProjectFromSelectedVehiclesDemandedCommand; DataItem='CheckBox' (Name=''); ターゲット要素は 'CheckBox' (Name='') です。ターゲット プロパティは 'Command' (タイプ 'ICommand') です。

地獄のように私を悩ませているのは、すべての単一セルのCheckBoxを備えたDataTemplateがうまく機能していることです。プロパティとコマンドが正しくバインドされています。機能しないのは、ヘッダーのチェックボックスです。別のプロジェクトで(まったく同じ構造を)正しく実行しています。

私が間違っていることはありますか?

更新:今朝(スヌープなどを使用しているため)もう一度試してみましたが、コードを変更せずに突然動作しました(再び)。ここでのスタックオーバーフローのベストプラクティスは何ですか - >質問を削除しますか?

私を助けようとしてくれたすべての人にもう一度感謝します!

4

0 に答える 0