自定义DataGrid标头中的宽度绑定会产生错误

时间:2015-07-10 11:46:15

标签: c# wpf datagrid width ivalueconverter

我创建了一个自定义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(); } }

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您无法将Width属性的值设置为小于零的值。 但是您将值设置为-11。这会导致错误。

在转换器中,您应该检查返回的结果是否等于零或更大:

...
var result = val - Substractor;
return result > 0 ? result : 0;