Uwp 使用转换器时,ItemsRepeater引发System.InvalidCastException

Uwp 使用转换器时,ItemsRepeater引发System.InvalidCastException,uwp,uwp-xaml,Uwp,Uwp Xaml,描述错误 1. Go to MovieTemplate, change Image's source to Source="{x:Bind PosterUrl, Converter={StaticResource imageUrlCompress}}" 2. Run app. 我正在设计一款类似NetFlix主页的应用程序。为了更好的用户体验,我在ItemsRepeater数据模板中使用了一些转换器。 然后,应用程序每次启动都会崩溃,并抛出ExcepOptionSystem.InvalidCa

描述错误

1. Go to MovieTemplate, change Image's source to
Source="{x:Bind PosterUrl, Converter={StaticResource imageUrlCompress}}"
2. Run app.
我正在设计一款类似NetFlix主页的应用程序。为了更好的用户体验,我在ItemsRepeater数据模板中使用了一些转换器。 然后,应用程序每次启动都会崩溃,并抛出ExcepOption
System.InvalidCastException
。 但如果我不使用converter,应用程序就会启动并运行良好

复制错误的步骤

1. Go to MovieTemplate, change Image's source to
Source="{x:Bind PosterUrl, Converter={StaticResource imageUrlCompress}}"
2. Run app.
预期行为

应用程序运行良好,并显示正常的主页

赢:18362.418 Microsoft.UI.Xaml:2.2.190917002

附加上下文

这是对@XamlBrewer回购协议的一点特别感谢


在WINUI 3.0 alpha中,所有转换器都会导致崩溃,包括TextBlock转换器。

我检查了您的代码并触发了此错误

System.InvalidCastException:无法将类型为“System.String”的对象强制转换为类型为“Windows.UI.Xaml.Media.ImageSource”

该错误表示无法将字符串直接分配给
Image.Source

您可以像这样重写转换器:

公共对象转换(对象值、类型targetType、对象参数、字符串语言) { 返回新的位图图像( 新Uri(“https://www.viu.com/ott/hk/v1/imgprocess/reduceImage.php?p=50&img=“+value.ToString()) ); }
Image.Source
接受基于
Windows.UI.Xaml.Media.ImageSource
的数据作为图像源,
BitmapImage
就是其中之一

直接使用绑定可以使用字符串作为源,因为XAML有一个内部转换器,但是当您显式设置转换器时,内部转换器将不再工作,您必须自己转换输出


此外,WinUI 3.0目前处于预览阶段。如果您遇到问题,请向存储库询问问题


致以最诚挚的问候。

好的,我会尽力的。谢谢我已经将此问题提交给github,但还没有回复。还有一个问题,我没有发现您编写的任何错误消息,我只收到了
System.InvalidCastException
。您能告诉我如何查找
System.invalidcasteption:无法将类型为“System.String”的对象强制转换为类型为“Windows.UI.Xaml.Media.ImageSource”。
出现错误时,您将跳转到
App.g.i.cs
页面。请注意VisualStudio左下角的“局部变量”窗口。变量
e
中有详细的错误消息和堆栈跟踪(这是个例外)。是的,我找到了。谢谢。