2012-01-20 49 views
0

我的目標是讓整個頂部StackPanel(或其他元素)使用返回的XML數據中的Url值打開一個網站。我想知道什麼纔是實現這個目標的最好方法?綁定StackPanel

這裏是我的XAML代碼的示例:

<DataTemplate> 
    <StackPanel> //bind Url here somehow 
     <Image Source="{Binding Thumbnail}"></Image> 
     <StackPanel> 
      <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/> 
      <StackPanel> 
       <TextBlock Text="{Binding Duration}"></TextBlock> 
       <TextBlock Text="{Binding Stats}"></TextBlock> 
      </StackPanel> 
     </StackPanel> 
    </StackPanel> 
</DataTemplate> 

這是我的代碼後方返回的值的示例:

public class XmlData 
    { 
     public string Id { get; set; } 
     public string Title { get; set; } 
     public string Url { get; set; } 
     public string Thumbnail { get; set; } 
     public string Stats { get; set; } 
     public double Duration { get; set; } 
    } 

代碼示例理解。提前致謝。

回答

1

的XAML:

<DataTemplate> 
<StackPanel MouseLeftButtonDown="StackPanelMouseLeftButtonDown" Tag="{Binding Url}"> 
     <Image Source="{Binding Thumbnail}"></Image> 
     <StackPanel> 
      <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/> 
      <StackPanel> 
       <TextBlock Text="{Binding Duration}"></TextBlock> 
       <TextBlock Text="{Binding Stats}"></TextBlock> 
      </StackPanel> 
     </StackPanel> 
    </StackPanel> 
</DataTemplate> 

後面的代碼:

private void StackPanelMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { 
    var realSender = (StackPanel)sender; 
    WebBrowserTask wbt = new WebBrowserTask(); 
    wbt.URL = (string)realSender.Tag; 
    wbt.Show(); 
} 
+0

感謝您的回覆。此代碼對我無效。當我點擊StackPanel時,會出現錯誤。有沒有可能缺少的東西? – crazymatt

+0

你應該告訴我們你得到的錯誤。 – mostruash

+0

@crazymatt給出的代碼是正確的並且有效。我建議你運行幾個WP7/Silverlight教程,然後再試一次, – ColinE

1

堆棧面板本身無法打開URL,因此您需要爲此控制一個WebBrowser

<DataTemplate> 
    <StackPanel> 
     <WebBrowser Source="{Binding Url}" /> 
     <Image Source="{Binding Thumbnail}"></Image> 
     <StackPanel> 
      <TextBlock Text="{Binding Title}" TextWrapping="Wrap"/> 
      <StackPanel> 
       <TextBlock Text="{Binding Duration}"></TextBlock> 
       <TextBlock Text="{Binding Stats}"></TextBlock> 
      </StackPanel> 
     </StackPanel> 
    </StackPanel> 
</DataTemplate> 
+0

感謝響應。很抱歉,如果我的問題具有誤導性,但我不想在我的應用中的網絡瀏覽器中打開該網址。我希望能夠點擊那個頂層StackPanel中的任何地方,並讓它從外部打開Windows Phone IE瀏覽器到相應的網站。 – crazymatt

相關問題