2011-06-14 14 views
5

Uygulamamda kullanıcıların fotoğraf makinesinden ve fotoğraf kitaplığından yalıtılmış depolamaya fotoğraf kaydetmesine izin veriyorum. Her dosyanın adını alıp fotoğrafı okuyup listeme ekledim. Liste oluşturulduktan sonra liste kutusuna bağlarım.XamlParseException liste kutusuna bağlanırken

Yaklaşık 5 sorun olmadan görüntüleniyor olabilir. Ben istisna olsun kaydırma sonra:

<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> 

Bu kodudur:

System.Windows.Markup.XamlParseException occurred 
    Message= [Line: 0 Position: 0] 
    --- Inner Exception --- 
KeyNotFoundException 

Bu benim XAML olan

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; } 
} 

neden olarak çok WP7 gelişimine yeni ve şaşkın benim kod kısmen çalışır.

cevap

1

Sana bir hata yaptım düşünüyorum: Name="{Binding FileName}"
Adı bir harf veya alt çizgi karakteri (_) ile başlamalıdır ve yalnızca harf, rakam içermelidir veya altını: look here
Ben senin dosya adları bazı düşünmek Bu ilkelere göre matematik değildir
Etiket yerine başka bir özellik kullanın.

+0

Silinecek dosyanın adını silmek için Kaynak adını silmek için name niteliğini kullanıyorum. Kaynak, statik "sil" simgesine bir başvurudır. –

+0

Dosya adı formatı nedir? –

+0

Onları yalıtılmış bir depoya saklarım ve daha sonra "userPhotoInISO-" ile önek ve sonra bir GUID + ".jpg" oluştur. Liste kutusuna bağlanırken, öneki olmayan dosya isimlerini filtrelerim. Bu, __ApplicationSettings dosyasını hariç tutar. –

0

Kontrol dışarı Bu yayını: XAMLParseException driving me CRAZY!

alt çizgi genellikle XmlParseException InnerException belirlenebilir bir TargetInvocationException aslında olmasıdır. Bu daha fazla araştırma için bir çapa olabilir.

kullanın:

try 
{ 
} 
catch(Exception ex) 
{ 
} 

yapısı ve yakalama kesme noktası ayarlamak. Daha sonra, daha fazla bilgi verebilecek bir InnerException içerip içermediğini görmek için ex değişkenini daha ayrıntılı olarak inceleyin.

İlgili konular