Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UWP:用于更新图像的可观察集合的转盘控制问题_Uwp_Uwp Xaml - Fatal编程技术网

UWP:用于更新图像的可观察集合的转盘控制问题

UWP:用于更新图像的可观察集合的转盘控制问题,uwp,uwp-xaml,Uwp,Uwp Xaml,我正在使用UWP示例应用程序工具包中的Carousel控件,它从可观察的集合中获取图像 MainPage.xaml <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:controls="using:Microsoft

我正在使用UWP示例应用程序工具包中的Carousel控件,它从可观察的集合中获取图像

MainPage.xaml

  <Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  mc:Ignorable="d">

   <Grid>
     <Border Margin="0">
  <controls:Carousel x:Name="CarouselControl"
              InvertPositive="True"
              ItemDepth="300"
              ItemMargin="0"
              ItemRotationX="0"
              ItemRotationY="45"
              ItemRotationZ ="0"
              Orientation="Horizontal"
              ItemSource ={x:bind ViewModel.CollectionOfImages}
              SelectedIndex="4">
    <controls:Carousel.EasingFunction>
      <CubicEase EasingMode="EaseOut" />
    </controls:Carousel.EasingFunction>
    <controls:Carousel.ItemTemplate>
      <DataTemplate>
        <Image Width="200"
              Height="200"
              VerticalAlignment="Bottom"
              Source="{x:Bind ImagePath}"
              Stretch="Uniform" />
      </DataTemplate>
    </controls:Carousel.ItemTemplate>
  </controls:Carousel>
</Border>

当我从第1页加载舞台时,我可以看到这些图像正确显示,但当我导航到第2页时,也使用相同的旋转木马,但图像不同,我看不到这些图像被填充。我可以看到没有图像的屏幕。你知道是什么导致了这种情况吗?

你正在尝试将
图像
元素的
源属性绑定到一个
可观察集合
,这是错误的

您应该将
Carousel
控件的
ItemsSource
属性绑定到
observeCollection
,然后将
Source
属性绑定到
ImagePath
。大概是这样的:

<controls:Carousel x:Name="CarouselControl"
                  ItemsSource="{x:Bind ViewModel.CollectionOfImages}"
                  ...>
    <controls:Carousel.EasingFunction>
        <CubicEase EasingMode="EaseOut" />
    </controls:Carousel.EasingFunction>
    <controls:Carousel.ItemTemplate>
        <DataTemplate x:DataType="local:ImageClass">
            <Image Width="200"
                  Height="200"
                  VerticalAlignment="Bottom"
                  Source="{x:Bind ImagePath}"
                  Stretch="Uniform" />
        </DataTemplate>
    </controls:Carousel.ItemTemplate>
</controls:Carousel>


您能否使用OneDrive或GitHub与我们分享一个最小的示例?如果您能向我们展示重现测试样本问题的步骤可能会更好。我想知道您的字符串<代码>随机图像是什么样子的。您是否将图像导入到项目的资产中,然后获得如下图像路径字符串:
“ms?”-appx:///Assets/image.png“
?@YanGu MSFT Yes您的问题是否已解决?如果问题未得到解决,您最好使用OneDrive或GitHub与我们共享,以便我们重现问题并定位问题。谢谢您。我的原始实现将图像源绑定到CollectionOfImages,而源绑定到ImagePath。我在张贴帖子时把事情搞砸了。道歉。然而,即使有了这个实现,我也面临同样的问题。
 public class ImageClass
 {
     public string ImagePath;
  }
<controls:Carousel x:Name="CarouselControl"
                  ItemsSource="{x:Bind ViewModel.CollectionOfImages}"
                  ...>
    <controls:Carousel.EasingFunction>
        <CubicEase EasingMode="EaseOut" />
    </controls:Carousel.EasingFunction>
    <controls:Carousel.ItemTemplate>
        <DataTemplate x:DataType="local:ImageClass">
            <Image Width="200"
                  Height="200"
                  VerticalAlignment="Bottom"
                  Source="{x:Bind ImagePath}"
                  Stretch="Uniform" />
        </DataTemplate>
    </controls:Carousel.ItemTemplate>
</controls:Carousel>