我发现列表框的.xaml文件中有一些项目模板,数据模板和绑定。有没有办法在后面的代码中创建它?
有没有办法以编程方式创建数据模板?
这是XAML代码,但我需要在代码中使用c#而不是XAML,因为 我正在创建动态列表框,添加itemtemplatem,datatemplate
<ListBox Height="520" HorizontalAlignment="Left" Margin="0,6,0,0" Name="lstimge" VerticalAlignment="Top" Width="450" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Image}" Width="150" Stretch="Uniform" HorizontalAlignment="Center" />
<TextBlock Text="{Binding FileName}" TextWrapping="Wrap" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
请提供解决方案
谢谢, 阿肖克
答案 0 :(得分:5)
您无法从代码构建模板 - 这只能通过XAML完成。
如果您在代码中动态生成模板XAML,则可以按照here所述加载它。
我怀疑如果沿着这条路走下去,你会发现自己会打开一大堆蠕虫。作为替代方案,您可以预定义一组模板,并在运行时动态选择正确的模板,如here所述
答案 1 :(得分:5)
您可以使用XamlReader.Load在代码隐藏中动态加载XAML并将其转换为DataTemplate,稍后将其分配给ItemTemplate。 Here就是一个例子。
答案 2 :(得分:1)
您想对所有列表框使用相同的DataTemplate还是动态生成的?如果所有这些都相同,那么您可以将其保存为Style in your Resources,然后动态创建Listbox对象并应用样式。