C# 单击WP7视图模型上的链接

C# 单击WP7视图模型上的链接,c#,windows,silverlight,mvvm,windows-phone-7,C#,Windows,Silverlight,Mvvm,Windows Phone 7,我正在为WindowsPhone7构建一个应用程序。我有一个全景页面和一个视图模型-一个主菜单项列表。我不知道如何将这些点击绑定到数据,或者创建到其他页面的链接。(即:此菜单项中的每一项都需要可点击才能链接到另一页)。。我尝试的是,在我的主viewmodel.cs项目列表中为{binding Link}的文本分配一个单击事件。每个“链接”项都是一个事件处理程序,如下面cs文件中显示的代码所示。这不起作用,所以我想知道如何实现这一点。 下面的xaml文件示例显示列表中指向同一事件的所有文本链接:“

我正在为WindowsPhone7构建一个应用程序。我有一个全景页面和一个视图模型-一个主菜单项列表。我不知道如何将这些点击绑定到数据,或者创建到其他页面的链接。(即:此菜单项中的每一项都需要可点击才能链接到另一页)。。我尝试的是,在我的主viewmodel.cs项目列表中为{binding Link}的文本分配一个单击事件。每个“链接”项都是一个事件处理程序,如下面cs文件中显示的代码所示。这不起作用,所以我想知道如何实现这一点。 下面的xaml文件示例显示列表中指向同一事件的所有文本链接:“TextBlock_MouseLeftButtonDown_Wales”。但我当然希望他们每个人都有自己的页面

MainPage.xaml

  <ListBox  Margin="0,0,-12,0" ItemsSource="{Binding Items}" Background="#75000000">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,10">
                            <!--Replace rectangle with image-->
                            <!-- <Rectangle Height="100" Width="100" Fill="#FFE5001b" Margin="12,0,9,0"/> -->
                            <Image Source="/images/image1.png" Height="70" HorizontalAlignment="Left" Margin="0,0,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="77" Opacity="1" OpacityMask="#C8000000" />
                            <StackPanel Width="311">
                                <TextBlock Text="{Binding LineOne}"   MouseLeftButtonDown="TextBlock_MouseLeftButtonDown_Wales"   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>

我希望你明白我在这里想做什么,如果你需要更多信息,请告诉我。非常感谢。Dan

我假设您的
TextBlock\u MouseLeftButtonDown.*
事件位于
MainPage.xaml.cs
中。这是正确的吗

如果是这样的话,ViewModels就不是这样设计的

看看在新的“数据绑定”电话应用程序中创建的默认代码。这将显示一个使用仅包含数据的视图模型的示例


或者,您可以在
ItemViewModel
上创建一个实际的方法,并让listitem上的click事件调用模型中对象的方法。

谢谢Matt,我将按照您的思路做更多的研究。是的,你是对的,文本block_MouseLeftButtonDown_*在mainpage.xaml.cs中。@Dan你最后选择了哪条路?
 this.Items.Add(new ItemViewModel() { LineOne = "England", LineTwo = "blahblah", Link = "TextBlock_MouseLeftButtonDown_London" });
        this.Items.Add(new ItemViewModel() { LineOne = "Scotland", LineTwo = "blahblah ", Link = "TextBlock_MouseLeftButtonDown_London" });
        this.Items.Add(new ItemViewModel() { LineOne = "Wales", LineTwo = "blahblah ", Link = "TextBlock_MouseLeftButtonDown_Wales" });
        this.Items.Add(new ItemViewModel() { LineOne = "London", LineTwo = "blablbah ", Link = "TextBlock_MouseLeftButtonDown_London" });