Tất cả, tôi đang cố gắng lặp qua một WPF DataGrid
sử dụng một cho mỗi vòng lặp để thay đổi màu nền của các ô sai. Tôi đã kiểm tra nhiều câu hỏi nhưng tôi vẫn chưa tìm được câu trả lời đầy đủ. Những gì tôi có cho đến nay làLooping Thông qua WPF DataGrid Sử dụng foreach
public void RunChecks()
{
const int baseColumnCount = 3;
foreach (DataRowView rv in dataGrid.Items)
{
for (int i = baseColumnCount; i < dataGrid.Columns.Count; i++)
{
if (!CheckForBalancedParentheses(rv.Row[i].ToString()))
{
Color color = (Color)ColorConverter.ConvertFromString("#FF0000");
row.Background = new SolidColorBrush(color); // Problem!
}
}
}
}
Vấn đề là để thay đổi Background
màu sắc của một hàng trong DataGrid
của tôi, tôi cần phải làm việc với các đối tượng DataGridRow
ascociated với DataRowView
rv
.
Tôi làm cách nào để tham chiếu đến DataGridRow
từ đối tượng rv
(DataRowView
)?
Cảm ơn thời gian của bạn.
Chỉnh sửa. Dựa trên những lời khuyên dưới đây tôi bây giờ có phong cách sau đó làm việc với chuột trên sự kiện và thiết lập lại và fore font của tế bào có liên quan. Tuy nhiên, tôi thực sự bị mất như thế nào để áp dụng backcolor cho một tế bào tại thời gian chạy trong mã của tôi ở trên. Phong cách XML là
<Window.Resources>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter Property="Background" Value="Red" />
<Setter Property="FontWeight" Value="ExtraBold" />
</Trigger>
</Style.Triggers>
</Style>
</Window.Resources>
Cảm ơn thời gian của bạn. Tôi sẽ đưa ra lời khuyên của bạn và bắt đầu đọc. Tôi cũng đã cố gắng tô màu và toàn bộ cột, một lần nữa không có may mắn. Tôi đã hỏi một câu hỏi khác [ở đây] (http://stackoverflow.com/questions/15644105/change-the-background-color-of-entire-column-of-wpf-datagrid-at-runtime) nếu bạn có thể được borhered và muốn đại diện. Cảm ơn một lần nữa ... – MoonKnight
@Killercam: ý tưởng là như nhau cho các hàng và cột. Nếu đối tượng UI chứng minh một số thuộc tính (màu trong trường hợp này) có thể được thay đổi hoặc bằng truy cập trực tiếp hoặc thông qua ràng buộc, bạn sử dụng ràng buộc từ đối tượng modelview của bạn. – Tigran
Cảm ơn. Đã đọc một chương tắt một cuốn sách về Styles, Triggers, vv Tôi đã có hàng thay đổi màu sắc trên một con chuột trên sự kiện. Tuy nhiên, tôi bị mất như thế nào để thay đổi một tế bào/hàng để màu sắc yêu cầu từ mã tại thời gian chạy bằng cách sử dụng các phong cách. nếu bạn có thể cung cấp bất kỳ trợ giúp ở đây nó sẽ được đánh giá cao nhất ... Tôi đã chỉnh sửa các câu hỏi để hiển thị phong cách tôi có. – MoonKnight