Tôi cần gán màu cho hàng mà tôi thêm vào khi chạy vào DataTable. Điều này có thể giải quyết như thế nào?Lập trình gán màu cho một hàng trong DataGrid
Trả lời
Bạn có thể xử lý sự kiện LoadingRow của DataGrid để phát hiện khi một hàng được thêm vào. Trong trình xử lý sự kiện, bạn có thể nhận được một tham chiếu đến DataRow đã được thêm vào DataTable đang hoạt động như ItemsSource của bạn. Sau đó, bạn có thể cập nhật màu của DataGridRow tuy nhiên bạn thích.
void dataGrid_LoadingRow(object sender, Microsoft.Windows.Controls.DataGridRowEventArgs e)
{
// Get the DataRow corresponding to the DataGridRow that is loading.
DataRowView item = e.Row.Item as DataRowView;
if (item != null)
{
DataRow row = item.Row;
// Access cell values values if needed...
// var colValue = row["ColumnName1]";
// var colValue2 = row["ColumName2]";
// Set the background color of the DataGrid row based on whatever data you like from
// the row.
e.Row.Background = new SolidColorBrush(Colors.BlanchedAlmond);
}
}
Để đăng ký cho sự kiện này trong XAML:
<toolkit:DataGrid x:Name="dataGrid"
...
LoadingRow="dataGrid_LoadingRow">
Hoặc trong C#:
this.dataGrid.LoadingRow += new EventHandler<Microsoft.Windows.Controls.DataGridRowEventArgs>(dataGrid_LoadingRow);
QUAN TRỌNG: hãy chắc chắn luôn gán giá trị mặc định cho các hàng mà không phải là được tô màu bởi một điều kiện - hoặc bất kỳ phong cách nào khác.
Xem câu trả lời của tôi cho C# Silverlight Datagrid - Row Color Change.
PS. Tôi đang ở Silverlight và chưa khẳng định hành vi này trong WPF
U có thể thử này
Trong XAML
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Setters>
<Setter Property="Background" Value="{Binding Path=StatusColor}"></Setter>
</Style.Setters>
</Style>
</Window.Resources>
Trong DataGrid
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" Name="dtgTestColor" ItemsSource="{Binding}" >
<DataGrid.Columns>
<DataGridTextColumn Header="Valor" Binding="{Binding Path=Valor}"/>
</DataGrid.Columns>
</DataGrid>
Trong đoạn code tôi có một lớp học với
public class ColorRenglon
{
public string Valor { get; set; }
public string StatusColor { get; set; }
}
Khi đặt DataContext
dtgTestColor.DataContext = ColorRenglon;
dtgTestColor.Items.Refresh();
Nếu u không được thiết lập màu sắc của hàng giá trị mặc định là Grey
u có thể thử mẫu này với mẫu này
List<ColorRenglon> test = new List<ColorRenglon>();
ColorRenglon cambiandoColor = new ColorRenglon();
cambiandoColor.Valor = "Aqui va un color";
cambiandoColor.StatusColor = "Red";
test.Add(cambiandoColor);
cambiandoColor = new ColorRenglon();
cambiandoColor.Valor = "Aqui va otro color";
cambiandoColor.StatusColor = "PaleGreen";
test.Add(cambiandoColor);
- 1. Lập trình đưa hàng Datagrid vào xem trong WPF, MVVM
- 2. Màu văn bản có điều kiện cho các hàng DataGrid?
- 3. lập trình gán sự cho phép để một khóa registry
- 4. Lập trình chọn một hàng trong JTable
- 5. C# Silverlight Datagrid - Thay đổi màu của hàng
- 6. loại bỏ tiêu đề hàng theo quan điểm DataGrid lập trình
- 7. Tô màu một hàng trong một NSTableView
- 8. WPF DataGrid lựa chọn kiểu hàng
- 9. Thêm nút xóa cho mỗi hàng trong datagrid
- 10. Đặt màu cho hàng QTableView
- 11. ngăn ngừa thay đổi hàng trong datagrid
- 12. Gán màu văn bản cho văn bản trong edittext
- 13. gán đuôi tệp cho bảng màu trong Sublime 2
- 14. Cách chọn một hàng hoặc ô trong WPF DataGrid theo chương trình?
- 15. WPF DataGrid với chiều cao hàng biến
- 16. Tạo biểu đồ màu theo lập trình?
- 17. Cách gán thang màu cho một biến trong ô phân tán 3D?
- 18. Làm cho nó có thể CHỈ chọn một hàng trong datagrid?
- 19. DataGrid SelectionUnit = Cell vô hiệu hóa tất cả sự hỗ trợ cho một hàng đã chọn?
- 20. Đặt màu nền cho hàng dữ liệu trong Adobe Flex
- 21. Thay đổi actionbar màu lập trình nhiều hơn một lần
- 22. Lập trình có màu chủ đề
- 23. Gán một màu nền cho một ô, đưa ra một điều kiện trên tế bào khác
- 24. Màu hàng và Màu hàng thay thế cho Bảng trong Báo cáo RDLC
- 25. Cách gán màu ngẫu nhiên cho hiệu ứng di chuột
- 26. Threejs: gán màu sắc khác nhau cho mỗi đỉnh trong một hình học
- 27. Thay đổi màu nền UIView lập trình
- 28. ScrollIntoView cho WPF DataGrid (MVVM)
- 29. WPF DataGrid, lỗi ứng dụng khi thêm một hàng
- 30. Đường viền màu đỏ bất ngờ (lỗi xác thực) trên DataGrid khi chọn hàng trống
hãy chắc chắn để gán giá trị mặc định cho các hàng có màu không được kích hoạt bởi điều kiện –
cảm ơn. đó là một cách đơn giản tuyệt vời đối với tôi. – Nasenbaer
Không hoạt động. mục luôn là null – Yusha