UWP:用于更新图像的可观察集合的转盘控制问题
我正在使用UWP示例应用程序工具包中的Carousel控件,它从可观察的集合中获取图像 MainPage.xamlUWP:用于更新图像的可观察集合的转盘控制问题,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
<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>