我有ObservableCollection
,其中包含许多依赖于用户与应用互动的对象。
我想将每个对象表示为HubSection
,因为我不知道对象的数量,所以必须从View后面的代码动态生成HubSections。
在视图后面的代码(xaml.cs文件)中,我创建了一个遍历集合的循环,并在每次迭代中开始创建HubSection。
for (int i = 0; i < list_size; i++)
{
tempHubSection = new HubSection();
tempHubSection.Header = vm.MyCollection[i].Name;
DataTemplate dt = new DataTemplate();
???
mainHub.Sections.Add(tempHubSection);
}
但是我对如何创建一个DataTemplate并在其中插入一个Grid感到有些困惑,例如:
<HubSection Width="700" Header="object-1">
<DataTemplate>
<Grid>
...
</Grid>
</DataTemplate>
</HubSection>
感谢。
答案 0 :(得分:2)
将DataTemplate
代码移至app.xaml
文件的资源部分,输入名称,例如myTemplate
。
<DataTemplate x:Key="myTemplate">
<Grid>
...
</Grid>
</DataTemplate>
然后您就可以在代码中分配它了:
mainHub.Template = (ControlTemplate)App.Current.Resources["myTemplate"];