2014-02-13 11 views
3

Я пытаюсь изменить цвет моих DataGrid ячеек, который содержит слово «Изменить».Как изменить цвет фона ячейки DataGrid на основе значения ячейки

В WinForms я достиг, что с этим кодом:

DataGridViewCellStyle style = new DataGridViewCellStyle(); 
style.BackColor = Color.DarkCyan; 

foreach (DataGridViewRow Row in dataGridView1.Rows) 
{ 
    if (Row.Cells["Permission"].Value.ToString().Contains("Modify")) 
    { 
     Row.Cells["Permission"].Style = style; 
    } 
} 

я заполнить этот DataGrid с DataTable.

Я знаю очень мало о WPF, так что если у вас есть предложения, будьте очень конкретны.

+0

Я использую 'dataGrid1.ItemsSource = dataTable.AsDataView()', чтобы получить DataTable, но потом я получил сообщение «Коллекция пунктов должно быть пустым перед использованием ItemSource ". –

ответ

1

я сделал следующее, чтобы исправить мою проблему:

<DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Height="173" Margin="53,127,0,0" VerticalAlignment="Top" Width="378" AutoGenerateColumns="False"> 
      <DataGrid.Columns> 
       <DataGridCheckBoxColumn Binding="{Binding Selecione}" Header="Selecione"/> 
       <DataGridTextColumn Binding="{Binding Grupos}" Header="Grupos"/> 
       <DataGridTextColumn Binding="{Binding Permissoes}" Header="Permissões"> 
        <DataGridTextColumn.CellStyle> 
         <Style TargetType="DataGridCell"> 
          <Style.Triggers> 
           <DataTrigger Binding="{Binding Permissoes}" Value="Modify"> 
            <Setter Property="Background" Value="Green"/> 
           </DataTrigger> 
          </Style.Triggers> 
         </Style> 
        </DataGridTextColumn.CellStyle> 
       </DataGridTextColumn>`enter code here` 
      </DataGrid.Columns> 
     </DataGrid> 
+0

Вы сделали это для столбца, возможно ли сделать его для всех столбцов динамически? – Tito

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