私は新しいWPFスターターであり、マイナーなことを達成するのに問題があります。WPF観測可能なコレクションプロパティに基づいてDataGridCheckBoxColumnを無効にする
IがのObservableCollection 順序を有し、それは順番に選択することができるかどうかを示すために2本の支柱
- IsSelected(順序はグリッド内で選択されたことを示すために)
- EnableOrderを有する(ビューモデルを有します)。
ただし、Orders/EnableOrderがfalseの場合、チェックボックスは無効になりません。
<DataGrid ItemsSource="{Binding Orders}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding IsSelected}">
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsEnabled" Value="{Binding Orders/EnableOrder}" />
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
それはEnableOrderではないよう
<DataGrid ItemsSource="{Binding Orders}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding IsSelected}">
<DataGridCheckBoxColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsEnabled" Value="False" />
</Style>
</DataGridCheckBoxColumn.CellStyle>
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
以下のような偽Iハードコードはまた、私は以下のように結合を指定することができなかった時に動作しますXAMLインテリセンスに表示されます。
<Setter Property="IsEnabled" Value="{Binding EnableOrder}" />
私は、グリッド内で持っていたとバインディングは、私はバインディングが間違っていたと思いますどんな問題
私はあなたがスタイルにあり、スタイルが異なるDataContextを持つ可能性のある複数のアイテムに適用される可能性があるため、IntellisenseはEnableOrderをプルアップしないと思います。したがって、たとえIntelliSenseが存在しないにもかかわらずEnableOrderにバインドすれば、まだビルドして実行することができますか?そうであれば動作しますか? –
Intellisenseを無視し、私はそれを働かせることができました。 –