簡體   English   中英

如何以編程方式將項目添加到WP7中的PanoramaItem

[英]How to programmatically add items to a PanoramaItem in WP7

我正在開發一個具有動態數量的PanoramaItems的應用程序,現在,當前所有這些都通過使用“ ItemsSource”屬性將它們的列表綁定到Panorama來添加。

但是,當我嘗試將事物添加到創建的PanoramaItems時,問題就來了。 現在,我可以添加一個ListBox,它可以按預期工作,但是我真的想添加一些我可以控制的東西(可能是某種自定義控件)。

現在,我發現了很多地方可以通過編輯MainPage.xaml向我展示如何進行此操作,但是由於我不知道需要多少地方,所以我不能(我認為)這樣做。

由於PanoramaItem類沒有'Items'屬性,而只有'Content'屬性(我認為這是我需要的),這一事實使問題更加嚴重。

我想我需要為自定義控件定義一個.xaml / .cs文件,然后以某種方式將其應用於PanoramaItem,但我不確定

我將在這里假設您在這里使用MVVM框架,因此,如果不能,我深表歉意。

正確的想法是您可能要對Pano Items使用用戶控件。 一旦知道了,這里就是新的XAML代碼:

<controls:Panorama ItemsSource="{Binding PanoViewModels}">
     <controls:Panorama.ItemTemplate>
          <DataTemplate>
               <ctl:PanoItemControl />
          </DataTemplate>
     </controls:Panorama.ItemTemplate>
</controls:Panorama>

顯然,這是經過簡化的,但應該可以理解。 在控件中,您可以直接綁定到PanoViewModels中包含的對象。

如果您正在執行MVVM和數據綁定,那么Barranger Ridler的答案看起來不錯。

如果要為每個子代編寫自定義C#代碼,則需要在每個PanoramaItem的Content處放置一個容器(例如Grid或StackPanel)-然后可以將其添加到該子代的容器中。 我沒有C#代碼,但這是Ironruby代碼-它向StackPanel添加了5個TextBlocks,然后將該StackPanel設置為PanoramaItem的內容-移植起來應該非常容易。

stack_panel = StackPanel.new

for i in 1..5
  t = TextBlock.new
  t.font_size = i*24 
  t.text = "Line " << i.to_s
  s.children.add t
end

pi = PanoramaItem.new
pi.header = "Title"
pi.content = stack_panel

panorama.items.add pi

基於代碼http://script.iron7.com/#/Script/Detail?scriptId=ed9e4e216a474432a9e88523b201965d&userLowerCaseName=stuart

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM