将双精度绑定到Datagrid列MaxWidth属性

时间:2011-09-13 14:53:01

标签: silverlight binding datagrid ivalueconverter

我有一个datagrid,其列我想通过绑定设置MaxWidth属性。我有一个转换器将'绑定'更改为'double',但转换器永远不会被命中,应用程序停止在xaml错误:'System.Windows.Data.Binding'无法转换为'System.Double'类型。当我在数据网格MaxWidth属性之外的其他属性上使用转换器时,它工作正常。为什么这不起作用?

<Grid.Resources>
    <Converter:DoubleConverter x:Key="ConverterForDoubles" />
</Grid.Resources>

<data:DataGridTextColumn Header="Task ID" Binding="{Binding TaskId}" 
MaxWidth="{Binding Source={StaticResource MainViewModel}, Path=TaskIdColumnMaxWidth,
Mode=TwoWay, Converter={StaticResource ConverterForDoubles}}" />

2 个答案:

答案 0 :(得分:0)

DataGridTextColumn.MaxWidth不是依赖项属性,因此您无法绑定它。

当它期望从XAML解析双值时,它只是抱怨"{Binding...}"的存在。

解决方案包括添加附加属性或继承DataGridTextColumn并添加Dependency属性,该属性在设置时设置MaxWidth。

答案 1 :(得分:0)

发现这有助于绑定到setter:Setting Value Binding Helper