我创建了一个自定义DataGrid
标题,其中包含TextBlock
文本和Image
,位于DockPanel
内。
我将TextBlock
Width
绑定到ActualWidth
的{{1}},如下所示:
DataGridTextColumn
我使用的简单转换器减去Width="{Binding ActualWidth, RelativeSource={RelativeSource Mode=TemplatedParent}, Converter={StaticResource FitFilterImageToHeaderConverter}}"
:
Image
一切正常,但我遇到了令人讨厌的绑定错误。
public class SubtractConverter : IValueConverter
{
public double Subtractor { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
double val = System.Convert.ToDouble(value);
return val - Subtractor;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
我在这里缺少什么?
答案 0 :(得分:1)
您无法将Width
属性的值设置为小于零的值。
但是您将值设置为-11
。这会导致错误。
在转换器中,您应该检查返回的结果是否等于零或更大:
...
var result = val - Substractor;
return result > 0 ? result : 0;