我有一个包含大量列的网格。首先,在运行时在后面的代码中构建此网格,并且除了通用网格之外,XAML中的代码不多,因此我无法在设计时绑定列背景。我一直在阅读各种博客,问题,并发现以下是最接近的答案。
SolidColorBrush backgroundBrush = new SolidColorBrush();
Binding b = new Binding("BackGroundColor");
b.Converter = new ColorConverterForReadOnly(); //This converter return color based on parameter
b.ConverterParameter = data;
BindingOperations.SetBinding(backgroundBrush, SolidColorBrush.ColorProperty, b);
column.Background = backgroundBrush;
当我运行代码时,没有发生绑定,我在转换器内部设置了一个断点(在第一行)以查看调试是否完全击中转换器并且它根本没有到达转换器。如果我愿意
column.Background = new SolidColorBrush(Colors.Blue)
我可以看到列颜色设置为蓝色。
在没有让转换器调用的绑定中我缺少什么?
谢谢,
答案 0 :(得分:0)
绑定的目标是“BackGroundColor”属性。对于要命中的绑定,列控件的DataContext需要是一个具有“BackGroundColor”属性的对象。