2013-12-02 3 views
1

Я ищу способ отключить некоторые из моих ячеек в DataGrid WPF. Поскольку isReadOnly не является DependencyProperty, я не могу его использовать.DataGrid set single cells readonly

Есть ли другой способ сделать это?

Я хотел бы написать что-то вроде этого:

<DataGridTextColumn IsReadOnly="{Binding Path=Value,Converter={StaticResource ValueToBooleanConverter}}" /> 

, но любой способ, как сделать это было бы хорошо, так как я не вижу способа, но Разбиение данных в различных DataGrid's.

ответ

3

Если вы не можете сделать колонку только для чтения, вы можете перейти на уровень ячейки. Например, сделав Style и добавить его в требуемых столбцов:

<DataGridTextColumn Binding="{Binding TextProperty}"> 
     <DataGridTextColumn.CellStyle> 
      <Style TargetType="DataGridCell"> 
       <Setter Property="IsEnabled" 
         Value="{Binding Path=Value,Converter={StaticResource ValueToBooleanConverter}}" /> 
      </Style> 
     </DataGridTextColumn.CellStyle> 
</DataGridTextColumn> 

Я сделал Style внутри колонки здесь, но в курсе он может быть перемещен на ресурсы и ссылки в любых требуемых столбцов с помощью ключа (но ты должен быть Shure конвертер доступно для этого стиля). У ячейки IsReadOnly нет, похоже, сеттера, поэтому я использую IsEnabled здесь, который делает работу довольно хорошо.

0

привет, вы можете сделать только для чтения только для каждой ячейки столбца.

<DataGrid x:Name="DataGrid1">   
     <DataGrid.Columns>    
      <DataGridTextColumn 
       Width="Auto" 
       Header="NameHeader" 
       Binding="{Binding Path=value}" IsReadOnly="True"> 
      </DataGridTextColumn> 
     </DataGrid.Columns> 
    </DataGrid> 

Это очень просто, просто введите поле Isreadonly true, и все. Имейте в виду, что это свойство зависимостей.

Смежные вопросы