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数据模板中使用了一些转换器。
然后,应用程序每次启动都会崩溃,并抛出ExcepOptionSystem.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
中有详细的错误消息和堆栈跟踪(这是个例外)。是的,我找到了。谢谢。