저는 음수 값으로 빨간색으로 변하는 셀이있는 재무 계산기 인 DataGrid가 있습니다. 이 작업은 변환기가있는 DataTrigger를 통해 수행됩니다. 또한 시스템 강조 표시 선택 색상을 재정의했습니다. 내 문제는 지금 행을 선택할 때 빨간색 셀이 강조 표시되지 않는다는 것입니다.WPF DataGrid. 사용자 지정 스타일의 셀을 강조 표시 할 수 없습니다.
는 지금까지 내가 이해 사용자 정의 셀 스타일은 선택보다 우선합니다. 내 사용자 지정 빨간색 셀을 0.5 불투명도 파란색 막대로 강조 표시하고 싶습니다. 이 문제를 어떻게 해결할 수 있습니까?
음, 선택시 BG 색상을 변경하고 색상을 맞추기 위해 추가 트리거를 셀 스타일에 추가 할 수 있습니다.하지만 이는 오히려 불쾌감입니다. 아니면 어떻게 든 여기에 불투명도로 오버레이 색상을 구현할 수 있습니까?
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="LightBlue" />
</Trigger>
아래는 전체 코드입니다. 이것은 가볍고 가벼우 며 완전히 작동하는 예입니다.
XAML, 셀의 Background
참 "재정의"행의 배경이 셀에 다른 트리거를 추가해야합니다 있도록 C#
using System;
using System.Collections.ObjectModel;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
namespace Datagrid_Cell_Highlight
{
public class TableData
{
public decimal IncomeDay { get; set; }
public decimal IncomeWeek { get; set; }
public decimal IncomeMonth { get; set; }
public decimal IncomeYear { get; set; }
}
public class ViewModel
{
public ObservableCollection<TableData> MainTable { get; set; }
public ViewModel()
{
MainTable = new ObservableCollection<TableData>
{
new TableData { IncomeDay = (decimal)1.11 },
new TableData { IncomeDay = (decimal)2.22 },
new TableData { IncomeDay = (decimal)-1.23 },
new TableData { IncomeDay = (decimal)-2.34 }
};
foreach (var table in MainTable)
{
table.IncomeWeek = table.IncomeDay * 7;
table.IncomeMonth = table.IncomeDay * 30;
table.IncomeYear = table.IncomeDay * 365;
}
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
public class ValueToBoolConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((value is decimal) && ((decimal)value < 0))
return true;
else return false;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
내가 필요한 것을 정확히 수행합니다. 수락 됨. – Disodium