将数据透视项作为独立存储中的目录

本文关键字:存储 独立 数据 透视 | 更新日期: 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)名称的集合。

  1. 为了更好的模块化和清晰性,为页面创建一个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
    

    }

  2. 将此集合项绑定到数据透视控件项。你可以这样做,如下

在页面构造函数中设置类似的数据上下文

public MyPage()
{
    //Initializa components
    this.DataContext = new ViewModel();
}
  1. 最后,在应用程序启动时,为IsolatedStorage的每个目录创建一个DirectoryItem并存储在DirectoryItems集合(Files)中

通过这样做,您将创建一个具有透视控件的页面,这些透视控件的项是独立存储的目录,并且每个透视项都具有该特定目录中的文件名。