我正在努力制作一个应用程序,我在堆栈面板上有很多不同网站的链接,从MainViewMode
l获取内容,所以当我点击描述时它会打开网页WebBrowserTask
。但是,我希望在MainViewModel
上使用Uri并在.cs中获取该信息,这会将我带到网站
我的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" });
如果我不绑定信息,它可以工作,但我不知道如何在webBrowserTask.Uri = new Uri("I DONT KNOW");
形式的MainViewModel上获取Uri
答案 0 :(得分:0)
将以下代码添加到Open_Web方法的开头
var templateRoot = (FrameworkElement)sender;
var dataItem = (ItemViewModel)templateRoot.DataContext;
var uri = dataItem.Uri;