2013-01-11 69 views
0

我試圖做一個應用程序,我有很多鏈接到不同的網站在一個stackpanel,從那裏得到MainViewMode l的內容,所以當我點擊描述時,它會打開網頁通過WebBrowserTask。不過,我想對MainViewModel開放的我們並獲得在該的.cs信息,這需要我到現場從MainViewModel獲取Uri

我的XAML代碼是

<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal" Margin="0,0,0,17" Tap=Open_Web> 
<Image Height="100" Width="100" Margin="0,0,0,0" Source="{Binding ImgWeb}" HorizontalAlignment="Left"/> 
          <StackPanel Width="311"> 
           <TextBlock Text="{Binding LineOne}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/> 
           <TextBlock Text="{Binding LineTwo}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/> 
          </StackPanel> 
         </StackPanel> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
      </ListBox> 

我的.cs是

private void Open_Web(object sender, RoutedEventArgs e) 
    { 
     WebBrowserTask webBrowserTask = new WebBrowserTask(); 
     webBrowserTask.Uri = new Uri("I DONT KNOW"); 
     webBrowserTask.Show(); 

而且我MainViewModel代碼:

this.Items.Add(new ItemViewModel() { LineOne = "Web Name", LineTwo = "Web description", Uri = "http://WebSite.com" }); 

如果我不綁定信息,它的工作原理,但我不知道如何得到URI上webBrowserTask.Uri = new Uri("I DONT KNOW");形式MainViewModel

回答

0

下面的代碼添加到Open_Web方法的開頭

var templateRoot = (FrameworkElement)sender; 
var dataItem = (ItemViewModel)templateRoot.DataContext; 
var uri = dataItem.Uri;