0

这是我之前的问题( UWP Problems Setting GridView Items source using x:Bind )的后续。

在那种情况下,我使用了 Mirosoft 的数据虚拟化示例中的随机访问文件数据源,并且从未填充过网格。问题是我没有提出属性更改事件。网格现在运行良好。

我现在的问题是,我试图在翻转视图控件中使用数据源,而不是网格视图。数据源确实被初始化,更改属性通知被提出,但翻转视图中没有显示任何内容。

翻转视图可以显示来自虚拟集合的数据吗?

这是我的模型的代码:

public class PhotoFlipViewViewModel : Mvvm.ViewModelBase
{

    private FileDataSource _PicturesCollection;

    public FileDataSource PicturesCollection
    {
        get
        {
            return _PicturesCollection;
        }
        set
        {
            if (_PicturesCollection != value)
            {
                _PicturesCollection = value;
                RaisePropertyChanged(() => PicturesCollection);                   
            }
        }
    }

    public PhotoFlipViewViewModel()
    {
         initdata();
    }

     async void initdata()
    {
        StorageLibrary pictures = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
        string path = pictures.SaveFolder.Path;

        var source = await FileDataSource.GetDataSoure(path);
        if (source.Count > 0)
        {
            PicturesCollection = source;
        }
    }

    public override async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> suspensionState)
    {

        System.Diagnostics.Debug.WriteLine("PhotoFlipViewViewModel::OnNavigatedToAsync - event fired.");

        if ( SessionState.ContainsKey("SelectedPhotoObjectFromGrid"))
        {

        await Task.CompletedTask;
    }

    public override async Task OnNavigatedFromAsync(IDictionary<string, object> suspensionState, bool suspending)
    {
        if (suspending)
        {
        }
        await Task.CompletedTask;
    }

    public override async Task OnNavigatingFromAsync(NavigatingEventArgs args)
    {
        args.Cancel = false;
        await Task.CompletedTask;
    }
}

我在 XAML 中的 FlipView:

    <FlipView x:Name="PhotoOuterFlipView"
                  BorderBrush="Black"
                  BorderThickness="1"
                  VerticalAlignment="Top"
                  HorizontalAlignment="Stretch"
                  ItemsSource="{x:Bind ViewModel.PicturesCollection, Mode=OneWay}"                     
                  ItemTemplate="{StaticResource PictureFlipViewTemplate}">
    <FlipView.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </FlipView.ItemsPanel>
</FlipView>

谢谢,任何建议表示赞赏。

4

0 回答 0