更改所选全景项目时如何确定全景项目索引

时间:2014-08-01 10:45:03

标签: wpf silverlight xaml windows-phone-8 panorama-control

我正在构建一个通过绑定显示图像的全景图。每当当前项目发生变化时,我需要找到全景项目的索引。但是,如果通过绑定检索数据,则 SELECTIONCHANGED事件不会触发。您能否请其他方式提出建议。 Thanx提前

XAML代码

<phone:Panorama x:Name="HeaderPanorama"
    ItemsSource="{Binding PanoramaImages}"
    Width="550" Margin="-10,-255,0,-140"
    SelectionChanged="HeaderPanorama_SelectionChanged_1">
    <phone:Panorama.ItemTemplate>
        <DataTemplate>
            <Image Source="{Binding}" Margin="-10"/>
        </DataTemplate>
    </phone:Panorama.ItemTemplate>
</phone:Panorama>

代码隐藏

private void HeaderPanorama_SelectionChanged_1(
        object sender,
        SelectionChangedEventArgs e)
{
    if (this.DataContext != null && this.DataContext is HomeViewModel)
    {
        ((HomeViewModel)this.DataContext).PanoramaItemIndex =
                HeaderPanorama.SelectedIndex;
    }
}

ViewModel代码

public HomeViewModel()
{
    RequestHomeData();
    PanoramaImages = new List<string>();
    PanoramaImages.Add("/Assets/n.png");
    PanoramaImages.Add("/Assets/n.png");
    PanoramaImages.Add("/Assets/n.png");
    PanoramaImages.Add("/Assets/n.png");
}

private List<string> _panoramaImages;
public List<string> PanoramaImages
{
    get { return _panoramaImages; }
    set
    {
        _panoramaImages = value;
        NotifyPropertyChanged("PanoramaImages");
    }
}

private int _panoramaItemIndex;
public int PanoramaItemIndex
{
    get { return _panoramaItemIndex; }
    set
    {
        _panoramaItemIndex = value;
        NotifyPropertyChanged("PanoramaItemIndex");
    }
}

0 个答案:

没有答案