太棒了AG_E_PARSER_BAD_PROPERTY_VALUE

时间:2010-02-23 22:03:13

标签: silverlight

我正在尝试将datagridcolumn扩展一点,以便我可以使列宽度基于百分比,而不是绝对的Silverlight。这样,无论网格的大小如何,列都会占用网格的指定百分比。

无论如何,这是我的第一步

public static class DataGridColumnBehaviors
{
    public static readonly DependencyProperty WidthPercentageProperty =
        DependencyProperty.RegisterAttached("WidthPercentage", typeof(double?), typeof(DataGridColumnBehaviors),
            new PropertyMetadata(null, OnWidthPercentagePropertyChanged));

    public static double? GetWidthPercentage(DependencyObject d)
    {
        return (double?)d.GetValue(WidthPercentageProperty);
    }

    public static void SetWidthPercentage(DependencyObject d, double? value)
    {
        d.SetValue(WidthPercentageProperty, value);
    }

    public static void OnWidthPercentagePropertyChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
    {

    }
}

在我正在做的XAML中

            <data:DataGridTemplateColumn MinWidth="200" 
                                         dataBehaviors:DataGridColumnBehaviors.WidthPercentage="5.0"
                                         Header="Name">
                <data:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}" />
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellTemplate>
                <data:DataGridTemplateColumn.CellEditingTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding Name, Mode=TwoWay}" />
                    </DataTemplate>
                </data:DataGridTemplateColumn.CellEditingTemplate>
            </data:DataGridTemplateColumn>

这在运行时产生以下消息

AG_E_PARSER_BAD_PROPERTY_VALUE [Line: 85 Position: 100]

第85行是:

dataBehaviors:DataGridColumnBehaviors.WidthPercentage="5.0

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

你不能从双倍转换为双倍?像这样的CLR级别。你几乎肯定不想。

Silverlight使用双精度数,然后使用double.NaN和double.PositiveInfinity来表示“特殊”值。