2010-05-17 3 views

ответ

0

Вы можете использовать свойство AlternatingRowBackground, чтобы делать все остальные строки. Вам нужно делать определенные строки? Как только строки 1, 5 и 9? Или другой цвет фона в зависимости от данных?

Редакцией: отредактирован за комментарий ..

Действовать данных на основе может быть сделано, как это ...

<DataGrid 
    AlternatingRowBackground="AliceBlue" 
    ItemsSource="{Binding}" 
    AutoGenerateColumns="False" 
    Height="200" 
    HorizontalAlignment="Left" 
    Margin="156,58,0,0" 
    Name="dataGrid1" 
    VerticalAlignment="Top" 
    Width="200" LoadingRow="dataGrid1_LoadingRow"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding}" /> 
    </DataGrid.Columns> 
</DataGrid> 

void MainWindow_Loaded(object sender, RoutedEventArgs e) 
{ 
    ObservableCollection<string> list = new ObservableCollection<string>(); 
    list.Add("test1"); 
    list.Add("test2"); 
    list.Add("test3"); 
    list.Add("test4"); 
    list.Add("test5"); 

    dataGrid1.ItemsSource = list; 
} 

private void dataGrid1_LoadingRow(object sender, DataGridRowEventArgs e) 
{ 
    if (e.Row.Item.ToString().Contains("test")) 
    { 
     e.Row.Background = Brushes.Red; 
    } 
} 
+0

да, разные цвета фона в зависимости от данных, возможно ли это? как это сделать? – martin

+0

В моем случае есть несколько столбцов, поэтому я должен использовать: e.Row.Item.ToString(). Содержит == "xxxx"? но он не работает. – martin

+0

«Содержит» - это метод. так что ваш код будет ... 'if (e.Row.Item.ToString(). Содержит (« xxx »)) .... –

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