@@ -5062,7 +5062,47 @@ Func<XamlMemberDefinition, bool> propertyPredicate
5062
5062
{
5063
5063
if ( IsInitializableCollection ( member . Member ) )
5064
5064
{
5065
- writer . AppendLineInvariant ( "// Empty collection" ) ;
5065
+ // New grid succinct syntax.
5066
+ if ( member . Owner ? . Type . Name == "Grid" &&
5067
+ member . Owner ? . Type . PreferredXamlNamespace == XamlConstants . PresentationXamlXmlNamespace &&
5068
+ ( member . Member . Name == "ColumnDefinitions" || member . Member . Name == "RowDefinitions" ) &&
5069
+ member . Member . PreferredXamlNamespace == XamlConstants . PresentationXamlXmlNamespace &&
5070
+ member . Value is string definitions )
5071
+ {
5072
+ using ( writer . BlockInvariant ( $ "{ fullValueSetter } = ") )
5073
+ {
5074
+ var propertyName = member . Member . Name == "ColumnDefinitions"
5075
+ ? "Width"
5076
+ : "Height" ;
5077
+ var definitionType = new XamlType (
5078
+ unknownTypeNamespace : XamlConstants . PresentationXamlXmlNamespace ,
5079
+ unknownTypeName : member . Member . Name == "ColumnDefinitions"
5080
+ ? "ColumnDefinition"
5081
+ : "RowDefinition" ,
5082
+ list : new List < XamlType > ( ) ,
5083
+ xamlSchemaContext : new XamlSchemaContext ( ) ) ;
5084
+
5085
+ var values = definitions
5086
+ . Split ( ',' )
5087
+ . Select ( static definition => definition . Trim ( ) )
5088
+ . ToArray ( ) ;
5089
+
5090
+ foreach ( var value in values )
5091
+ {
5092
+ using ( writer . BlockInvariant ( "new {0}" , GetGlobalizedTypeName ( definitionType ) ) )
5093
+ {
5094
+ writer . AppendLineInvariant ( "{0} = {1}" , propertyName , BuildGridLength ( value ) ) ;
5095
+ }
5096
+
5097
+ writer . AppendLineInvariant ( "," ) ;
5098
+ }
5099
+ }
5100
+ writer . AppendLineInvariant ( "," ) ;
5101
+ }
5102
+ else
5103
+ {
5104
+ writer . AppendLineInvariant ( "// Empty collection" ) ;
5105
+ }
5066
5106
}
5067
5107
else
5068
5108
{
0 commit comments