将数据透视项作为独立存储中的目录
本文关键字:存储 独立 数据 透视 | 更新日期: 2023-09-27 18:22:01
我希望每个数据透视项都是独立存储中的一个目录,然后将每个文件名加载到列表框中。我觉得这很困惑,你们能帮我吗?
目前,它只是在一个枢轴上显示;对于我的应用程序,用户实际上可以创建一个pivot aka目录。
有可能以我可以的方式创建一个代码吗?我将根据数据透视项目名称加载目录,然后从该目录加载所有项目?
谢谢><
public partial class View2 : PhoneApplicationPage
{
public String selected;
public View2()
{
InitializeComponent();
LoadFromLocalStorage();
}
private void LoadFromLocalStorage()
{
try
{
using (IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication())
{
//string[] fileNames = store.GetFileNames();
string[] fileNames = store.GetFileNames("./general/*.*");
var files = new ObservableCollection<string>();
foreach (string s in fileNames)
{
files.Add(s);
}
lbFiles.ItemsSource = files;
}
}
catch
{
MessageBox.Show("Capture an image first!");
}
}
private static string _first;
public string First
{
get
{
return _first;
}
}
private void lbFiles_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
selected = lbFiles.SelectedItem.ToString();
general item = new general();
item.viewimage(selected);
MessageBox.Show(selected);
_first = selected;
NavigationService.Navigate(new Uri("/View.xaml", UriKind.Relative));
}
}
要为每个目录创建一个数据透视项,最好可以为其创建一个类,比如"DirectoyItem",该类具有该目录中的名称和文件(称为Files)名称的集合。
-
为了更好的模块化和清晰性,为页面创建一个Viewmodel,该页面具有"DirectoryItem"的集合(ObservableColeltion是最可取的)将此集合称为目录
公共类ViewModel{ObservableCollection Directories=new ObservableColelction();
// call LoadFromLocalStorage() and add items to this Directories list
}
公共类DirectoryItem:INotifyPropertyChanged{字符串名称;
ObservableCollection<string> Files; public DirectoryItem() { _name = null; Files = new ObservableCollection<string>(); } //write public set and get for Name field. //notify whenever property changes
}
-
将此集合项绑定到数据透视控件项。你可以这样做,如下
在页面构造函数中设置类似的数据上下文
public MyPage()
{
//Initializa components
this.DataContext = new ViewModel();
}
- 最后,在应用程序启动时,为IsolatedStorage的每个目录创建一个DirectoryItem并存储在DirectoryItems集合(Files)中
通过这样做,您将创建一个具有透视控件的页面,这些透视控件的项是独立存储的目录,并且每个透视项都具有该特定目录中的文件名。