0

我在 Windows Phone 7 中有一个列表框,我想在列表框中显示独立存储文件的列表,当我从列表框中选择文件时,我应该能够从文件中获取内容。

这是我的代码:

ListBoxItem lbi = (ListBoxItem)listBox1.SelectedItem;
string t = (string)lbi.Content;

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
using (var sr = new StreamReader(store.OpenFile(t, FileMode.Open, FileAccess.Read)))
{
    textBlock2.Text = sr.ReadToEnd();
}

并将文件绑定到列表:

var appstorage = IsolatedStorageFile.GetUserStoreForApplication();
string[] filename = appstorage.GetFileNames();
listBox1.ItemsSource = filename;

但是当我尝试应用程序时,SelectionChanged我收到一个错误:

无效的强制转换异常ListBoxItem lbi = (ListBoxItem)listBox1.SelectedItem;

现在最终的问题是,当事件被触发时,如何在列表框中检索确切的文件名SelectionChanged,以便流阅读器可以使用文件名?

4

1 回答 1

0

您正在绑定到IEnumerable<string>( string[]),列表框不会将这些项目转换为ListBoxItem',它们只是常规的旧字符串。

所以你应该这样做:

string t = (string)listBox1.SelectedItem;

using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
using (var sr = new StreamReader(store.OpenFile(t, FileMode.Open, FileAccess.Read)))
{
    textBlock2.Text = sr.ReadToEnd();
}
于 2012-07-20T15:34:19.487 回答