0

我正在尝试制作一个应用程序,其中我有很多指向堆栈面板上不同网站的链接,从MainViewModel 获取内容,所以当我点击描述时,它会通过WebBrowserTask. 但是,我想MainViewModel在 .cs 中使用 Uri 并获取该信息,这会将我带到该站点

我的xml代码是

<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

4

1 回答 1

0

将以下代码添加到 Open_Web 方法的开头

var templateRoot = (FrameworkElement)sender;
var dataItem = (ItemViewModel)templateRoot.DataContext;
var uri = dataItem.Uri;
于 2013-01-12T09:52:09.737 回答