Я новый стартер WPF, и у меня проблемы с достижением незначительной вещи.WPF Отключение DataGridCheckBoxColumn на основе наблюдаемого свойства коллекции
У меня есть ViewModel, который имеет ObservableCollection Заказ и который имеет два реквизита
- IsSelected (чтобы указать, что заказ был выбран в сетке)
- EnableOrder (указать, если можно выбрать заказ).
Однако флажок не отключен, если Приказы/EnableOrder являются ложными.
<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>
Это работает, когда я жесткий код ложных, как показано ниже
<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>
Кроме того, я был не в состоянии определить связывание, как показано ниже, как EnableOrder не видимый в XAML intellisense.
<Setter Property="IsEnabled" Value="{Binding EnableOrder}" />
Пожалуйста, обратите внимание, что были и другие переплеты просто DataGridTextColumn, что я имел внутри сетки и привязки работали без каких-либо проблем
Я бы предположил, что intellisense не потянет EnableOrder, поскольку вы в стиле, и этот стиль может применяться к нескольким элементам, которые могут иметь разные DataContexts. Итак, если вы привязываетесь к EnableOrder, хотя нет никакого intellisense, вы все еще можете создавать и запускать, и если это так работает? –
Игнорировал Intellisense, и я смог заставить его работать. –