2014-01-21 138 views
0

我是WP8應用開發的新手。創建動態頁面XAML

方案:從服務器接收

  • WP應用程序客戶端和服務器

  • 應用程序將顯示內容從服務器

  • 反應有2種:單件商品頁面或詳細信息頁面。

問:

  • 當服務器響應列表,客戶端應用程序必須從服務器

  • 創建數據的動態列表頁面當用戶在列表中單擊一個項目,服務器可能響應一個列表(續)或這個項目的細節(用戶不知道列表或細節)。

請推薦此案例支持的解決方案支持導航返回按下? (僅使用來自服務器的對象參數響應創建頁面)

開始頁面 - >列表 - >列表 - >列表 - >列表 - >詳細頁面。

or:首頁 - >列表 - >詳細頁面。

+0

你的措辭似乎表明你想在運行時動態地解析/呈現XAML代碼,這真的是你想要和/或需要的嗎? 你知道底層數據對象是什麼以及如何渲染/顯示它們嗎?如果是這樣,請簡化生活並創建一個listview頁面和一個detailviiew頁面,然後根據服務器/用戶輸入的某些條件/值來決定顯示哪些頁面。 – Fredrik

+0

保持相同的頁面並使用列表框控件。 –

回答

0

你的問題還不清楚,但我會盡力解決這個模糊問題。如果來自服務器的數據只是 - 數據,那麼您不需要動態創建XAML,則應該使用LongListSelector來顯示任意數據列表。當數據量未指定時,情況就是如此,但結構相同。有關更多信息,請參閱MSDN link

當您從服務器獲取詳細信息時,只需使用數據綁定來填充頁面上的預定義控件即可。您始終可以隱藏未使用的控件。

如果來自服務器的數據以不能預先確定的方式改變 UI,每個列表看起來完全不同,細節頁面也是可變的,您應該即時創建XAML。只需創建空白頁面並在構造函數中添加控件。例如:

// ListPage.xaml 
<ScrollViewer> 
    <StackPanel x:Name="panel"> 
    </StackPanel> 
</ScrollViewer> 

// ListPage.xaml.cs 
public ListPage() 
{ 
    InitializeComponent(); 

    foreach(var data in somesource) 
    { 
     if (...) 
      panel.Children.Add(new TextBlock()); 
     else 
      panel.Children.Add(new TextBox()); 
     // ... 
    } 
} 
0

你爲什麼不使用這樣的:

有2頁,第一個爲列表視圖和第二的詳細信息視圖。 根據服務器的響應將數據傳遞到相應的頁面,無論您想要什麼。您都不允許動態創建頁面並使用它們。

0

不需要創建動態xaml頁面。創建三頁 1.起始頁 2.列表頁 3.Detail頁

在列表頁中使用ListBox控件和綁定列表框與您的服務器數據。Hereenter link description here有關列表框控件的很好的解釋