我有一个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}}" />
答案 0 :(得分:0)
DataGridTextColumn.MaxWidth不是依赖项属性,因此您无法绑定它。
当它期望从XAML解析双值时,它只是抱怨"{Binding...}"
的存在。
解决方案包括添加附加属性或继承DataGridTextColumn并添加Dependency属性,该属性在设置时设置MaxWidth。
答案 1 :(得分:0)
发现这有助于绑定到setter:Setting Value Binding Helper