我有这段代码:
<Grid x:Name="LayoutRoot">
<Grid HorizontalAlignment="Left" Height="900" Width="1200">
<Grid.RowDefinitions>
<RowDefinition Height="300"></RowDefinition>
<RowDefinition Height="200"></RowDefinition>
<RowDefinition Height="200"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
<ColumnDefinition Width="300"></ColumnDefinition>
</Grid.ColumnDefinitions>
<ListBox x:Name="lst1" Width="300" Height="100" Grid.Row="0" Grid.Column="0">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="3">
<TextBlock Text="Id:" Foreground="Brown"></TextBlock>
<TextBlock Text="{Binding Id}" Foreground="Blue"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox x:Name="lst1" Width="300" Height="100" Grid.Row="0" Grid.Column="1"/>
<ListBox x:Name="lst2" Width="300" Height="100" Grid.Row="0" Grid.Column="2"/>
<ListBox x:Name="lst3" Width="300" Height="100" Grid.Row="0" Grid.Column="3"/>
</Grid>
</Grid>
如何在Silverlight后面的代码中创建DataTemplate / ItemTemplate?
答案 0 :(得分:0)
要动态创建DataTemplate
,您需要使用XDocument
或XmlTextWriter
等XML操作对象构建描述它的Xaml字符串。这个Xaml的根必须是DataTemplate
本身(记得包含或正确的命名空间)。
然后,您可以传递生成的字符串XamlReader.Load
,然后创建DataTemplate
,然后将其分配给ItemTemplate
的{{1}}属性。