1
我試圖擴大datagridcolumn有點,所以我可以使列寬基於百分比,而不是絕對在silverlight。這樣,無論網格的大小如何,列都佔用了網格的指定百分比。哦,真棒AG_E_PARSER_BAD_PROPERTY_VALUE
無論如何,這是我的第一個步驟
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
任何想法?
啊,所以設置默認值爲double.Nan而不是使用雙重?......做了伎倆謝謝你! – Jeff 2010-02-24 00:02:11
我可能會選擇double.NaN,但是您可能需要檢查附加行爲中的「特殊」值並做一些特殊的事情(比如不設置寬度或其他),以便您可以選擇任何特殊值喜歡。 – 2010-02-24 00:10:53