7

コレクションの値に応じて、データグリッドのチェックボックス列を行ごとに有効/無効にしたいと考えています。Enabled というブール型プロパティを持つ AccountComponent というクラスのコレクションである AccountComponents という ObservableCollection があります。Enabled プロパティを IsReadOnly および IsEnabled にバインドしようとしましたが、うまくいきませんでした。

DataGridCheckBoxColumn を試した XAML を次に示します。

<DataGridCheckBoxColumn Binding="{Binding IsChecked}" IsReadOnly="{Binding AccountComponents/Enabled}"/>

DataGridTemplateColumn を試した XAML を次に示します。

<DataGridTemplateColumn Header="">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Grid>
                                <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="False"/>
                            </Grid>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <Grid>
                                <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}" IsEnabled="{Binding Enabled}"/>
                            </Grid>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>

これを理解するための助けは大歓迎です。

4

1 に答える 1

5

CellEditingTemplateまず、 CheckBox のみを使用する場合は a を指定する必要はありません。チェックボックス自体は「編集可能/チェック可能」です。CellEditingTemplateこれは意味がないので削除してください。

CheckBox のプロパティをCellTemplate のプロパティに直接バインドしようとしましたか (CellEditingTemplate で行ったようにIsEnabled) 。これで問題が解決するはずです。EnabledAccountComponent

<DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
        <Grid>
            <CheckBox IsChecked="{Binding IsChecked,Mode=TwoWay}"
                      IsEnabled="{Binding Enabled}"/>
        </Grid>
    </DataTemplate>
</DataGridTemplateColumn.CellTemplate>
于 2013-06-19T08:47:14.473 に答える