WP7 - 使用列表框动态创建 PivotItem
我在 MainPage.xaml 中有此代码:
<controls:PivotItem Header="first">
<ListBox x:Name="MyListBox" Margin="0,0,-12,0" ItemsSource="{Binding ListBoxItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="132">
<TextBlock Text="{Binding text}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PivotItem>
并且我需要使用此类模型在运行时创建 N 个 PivotItem。我该怎么做呢?
I have this code in MainPage.xaml:
<controls:PivotItem Header="first">
<ListBox x:Name="MyListBox" Margin="0,0,-12,0" ItemsSource="{Binding ListBoxItem}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Height="132">
<TextBlock Text="{Binding text}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</controls:PivotItem>
And I need to create N PivotItem's in runtime with such model. How can I do it?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
让您的 PivotItem 声明成为静态资源。
然后在您的 Pivot 声明中将其用作项目的模板。
这样,每次您向
MyCollectionInDataContext
添加内容时,都会根据您定义的模板创建一个PivotItem
。Let your PivotItem delaration be a Static Resource.
Then in your Pivot declaration use it as a template for your items.
This way, each time you add something to a
MyCollectionInDataContext
, aPivotItem
is created according to your defined template.我今天实际上做了类似的事情。您可以将
DataTemplate
模型应用于PivotItem
和PivotItem
中显示的ListBox
。尝试一下:在此代码中,将为绑定到它的每个项目创建一个
PivotItem
,并且其相应的ListBox
将使用来自集合中的数据填充相同的项目源。I actually did something similar today. You can apply the
DataTemplate
model to both thePivotItem
and theListBox
that appears in thePivotItem
. Try this out:In this code, a
PivotItem
will be created for each item you bind to it, and its correspondingListBox
will be populated with the data from the collection in the same ItemSource.有一种比定义
UserControl
并找出其绑定更简单的方法...这里的大部分复杂性都在
ItemTemplate
中 - 移动ItemTemplate 到该页面的 ResourceDictionary 中并将其应用到所有列表框。如果您在许多页面/控件中使用模板,您甚至可以将模板移至 App.xaml。
在设计时,您只需在每个数据透视项中调用它:
如果您需要在运行时从代码执行此操作,您可以从页面的
ResourceDictionary< 中提取“MyItemDataTemplate”
ItemTemplate
对象/code> 并将其应用到您创建的新列表框。There's an easier way than defining a
UserControl
and figuring out the binding for that...Most of the complexity here is in the
ItemTemplate
- move theItemTemplate
into the ResourceDictionary for that page and apply it to all your ListBoxes. You can even move the template to App.xaml if you use it in many pages/controls.At design-time you would simply call this up in each pivot item:
If you need to do this at runtime from code, you can pull the "MyItemDataTemplate"
ItemTemplate
object from the page'sResourceDictionary
and apply it to the new ListBox you create.首先我
创建了一个用户控件UserControl
在 xaml 中
。CS
first i created a user control
UserControl
after in xaml
.cs