我想更改Abs(Diff)列。这必须是在Abs(Diff)中,因为观众想要这样看。
ID | TYPE| CURRENT VALUE | TARGET | ABS(Diff)
1 | Sell| 10 | 11 | 1 --> Color Red
2 | Sell| 11 | 10 | 1 --> Color Green
3 | BUY | 10 | 9 | 1 --> Color Green
4 | BUY | 10 | 11 | 1 --> Color Red
意思是: 第1行:我有一件待售的物品。当前市场价值是10,我希望至少卖出(目标)11。这不符合我的要求。对于Abs(Diff)
,单元格中的颜色应为红色我看过这个。 Change DataGrid cell colour based on values 但这似乎只是一个价值。我如何看待多列?
答案 0 :(得分:3)
您可以添加名为bool
的{{1}}属性,表示IsPositive
值是正还是负。也许是这样的:
ABS(Diff)
然后您需要执行此操作以确保在public bool IsPositive
{
get { return Diff >= 0; }
}
值更改时在UI中更新它:
Diff
然后你应能够做这样的事情(改编自你的链接问题中的例子):
public double Diff
{
get { return diff; }
set
{
diff = value;
NotifyPropertyChanged("Diff");
NotifyPropertyChanged("IsPositive");
}
}
答案 1 :(得分:2)
但这似乎只是一个价值。我怎么看多重 列?
如果这是“唯一”问题,您应该在ViewModel public bool ShouldColor
中创建另一个属性,并在那里拥有所需的逻辑。
或者,您可以使用MultiBinding
来实现这一目标