绑定到列表框时出现XamlParseException
本文关键字:XamlParseException 列表 绑定 | 更新日期: 2023-09-27 17:59:11
在我的应用程序中,我允许用户将相机和照片库中的照片保存到独立存储中。然后我得到每个文件的名称,阅读照片并添加到我的列表中。一旦建立了列表,我就会将其绑定到列表框中。
我可以毫无问题地显示大约5个。在我滚动后,我得到了异常:
System.Windows.Markup.XamlParseException occurred
Message= [Line: 0 Position: 0]
--- Inner Exception ---
KeyNotFoundException
这是我的XAML:
<ListBox x:Name="userPhotosListBox">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
<ContentControl Content="{Binding Image}" Width="400" />
<Image Name="{Binding FileName}" Source="/Images/appbar.delete.rest.png" Width="48" Height="48"
MouseLeftButtonUp="Image_MouseLeftButtonUp" VerticalAlignment="Center" HorizontalAlignment="Center" MaxWidth="48" MaxHeight="48" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
这是代码:
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
var userFiles = store.GetFileNames();
foreach (var userFile in userFiles)
{
if (userFile.Contains(PhotoInIsolatedStoragePrefix))
{
var currentBitmap = ReadBitmapImageFromIso(userFile);
var userPhotoImage = new Image { Source = currentBitmap };
var userImg = new Img(userPhotoImage, userFile);
userPhotosListBox.Items.Add(userImg);
}
}
}
public class Img
{
public Img(Image img, string fileName)
{
this.Image = img;
this.FileName = fileName;
}
public Image Image { get; set; }
public string FileName { get; set; }
}
对于WP7开发来说,这是一个非常新的问题,并且对为什么我的代码部分工作感到困惑。
我认为您在Name="{Binding FileName}"
中犯了一个错误名称必须以字母或下划线字符(_)开头,并且只能包含字母、数字或下划线:请查看此处
我认为您的某些文件名不符合这些原则
请改用其他属性,如Tag。
看看这篇文章:XAMLParseException让我抓狂!
底线是XmlParseException通常实际上是TargetInvocationException,它可以在InnerException中确定。这可能是进一步调查的基础。
使用a:
try
{
}
catch(Exception ex)
{
}
构造并在catch处设置断点。然后更详细地检查ex变量,看看它是否包含InnerException,这可能会让您有更多的了解。