Windows phone 7 WP7 listbox selection changed事件不会以内容控件样式触发

Windows phone 7 WP7 listbox selection changed事件不会以内容控件样式触发,windows-phone-7,mvvm-light,Windows Phone 7,Mvvm Light,我一直在琢磨为什么listbox的selection changed事件不会触发。我有一个在代码中动态创建的项目。。。对wpf/xaml来说有点新 <Style x:Key="PanoramaItemStyle" TargetType="ContentControl"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetTy

我一直在琢磨为什么listbox的selection changed事件不会触发。我有一个在代码中动态创建的项目。。。对wpf/xaml来说有点新

<Style x:Key="PanoramaItemStyle" TargetType="ContentControl">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ContentControl">
                <Grid>
                    <controls:PanoramaItem x:Name="ItemLocationPanoramaItem" Header="{Binding TagName}">
                        <ListBox  ItemsSource="{Binding ItemLocators}" Height="496" SelectedItem="{Binding SelectedItemLocation, Mode=TwoWay}" SelectionChanged="ItemLocatorsList_SelectionChanged" >
                            <ListBox.ItemsPanel>
                                <ItemsPanelTemplate >
                                    <StackPanel Orientation="Vertical"  ScrollViewer.VerticalScrollBarVisibility="Auto" />
                                </ItemsPanelTemplate>
                            </ListBox.ItemsPanel>
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                        <StackPanel Orientation="Horizontal" Margin="0,0,0,17">
                                            <StackPanel Width="311">
                                                <TextBlock Text="{Binding Item.Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextLargeStyle}"/>
                                                <TextBlock Text="{Binding Location.Description}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                                            </StackPanel>
                                        </StackPanel>
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </controls:PanoramaItem>
                    <ContentPresenter/>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Foreground" Value="White"/>
</Style>

请参阅我对如何使用mvvm动态生成全景项目和列表框的回答,即没有代码隐藏。

如果您使用mvvm light,您可以执行以下操作(填写代码以获取备注):



您必须提供更多关于您的实际问题的信息!您提到ListBox SelectionChanged事件没有触发,但您的代码片段都是关于填充全景控件的。我首先要简化您的代码,直到它成为说明您的问题的最简单示例,然后更新您的问题选项。您的问题是什么?您包含的代码中没有任何可以确定为列表框的内容。也没有对SelectionChanegd事件的引用。为什么
mvvm light
标记?同样,代码中没有任何内容引用它?我想知道为什么我原来帖子中的xaml没有显示出来这是我的原始帖子..想知道为什么xaml没有出现。我检查了其他帖子..这并没有解决这个特定问题代码和Xml需要在最后4个空格或1个制表符前加前缀才能格式化为代码。xaml的第一行没有任何缩进,因此下面的块没有被视为代码并隐藏.
 public LocationGroups()
    {
        InitializeComponent(); 
        LocationGroupsPanaroma.DefaultItem = LocationGroupsPanaroma.Items[0];
        viewModel = this.DataContext as LocationGroupsViewModel;
        CreateDynamicPanaromaItems();
    }


    private void CreateDynamicPanaromaItems()
    {
        foreach (Model.LocationGroup group in viewModel.LocationGroups)
        {
            if (group.TotalItems > 0)
            {
                PanoramaItem pi = new PanoramaItem();
                pi.Header = group.Name;
                pi.Orientation = System.Windows.Controls.Orientation.Horizontal;
                ItemLocationListViewModel itemLocationViewModel = viewModel[group.LocationGroupId];
                pi.DataContext = itemLocationViewModel;
                pi.Style = Resources["PanoramaItemStyle"] as Style; 
                LocationGroupsPanaroma.Items.Add(pi);
            }
        }

    }
<i:Interaction.Triggers>
  <i:EventTrigger EventName="SelectionChanged">
    <mvvm:EventToCommand 
    Command="{Binding <yourviewmodel>.<yourrelaycommand>, Mode=OneWay, Source={StaticResource Locator}}" CommandParameter="{Binding SelectedValue, ElementName=<nameofyourlistbox>}"/>
  </i:EventTrigger>