이것은 계층 적 데이터를 처음 접하는 문제이며 약간의 문제가 있습니다.Silverlight HierarchicalDataTemplate을 사용하여 IsolatedStorage 폴더를 표시 할 수 없습니다.
Silverlight 4에서 TreeView에 표시 할 격리 된 저장소 폴더 목록을 가져 오려고합니다. 아무것도 표시되지 않습니다. 내 Treeview 완전히 비어 있습니다. 내가 뭘 놓치고 있니? 나는 데이터를 얻고 있으며 그것이 맞다.
도움을 주시면 감사하겠습니다.
XAML
<sdk:TreeView x:Name="FolderTreeView" Grid.Column="0" Margin="0,0,3,0" ItemsSource="{Binding _Folders}">
<sdk:TreeView.ItemTemplate>
<sdk:HierarchicalDataTemplate ItemsSource="{Binding Path=Folders}">
<TextBlock Margin="0" Text="{Binding Name, Mode=OneWay}"/>
</sdk:HierarchicalDataTemplate>
</sdk:TreeView.ItemTemplate>
</sdk:TreeView>
CS
internal class Folder
{
public Folder() { Folders = new List<Folder>(); }
public string Name { get; set; }
public List<Folder> Folders { get; set; }
}
private List<Folder> _Folders = new List<Folder>();
public OpenFileDialog()
{
InitializeComponent();
ifs = IsolatedStorageFile.GetUserStoreForApplication();
var folder = new Folder
{
Name = "Root",
Folders = (from c in ifs.GetDirectoryNames()
select new Folder
{
Name = c,
Folders = LoadFolders(c)
}).ToList()
};
_Folders.Add(folder);
FolderTreeView.DataContext = new { _Folders };
}
private List<Folder>LoadFolders(string folderName)
{
if(folderName == null)
return null;
return (from c in ifs.GetDirectoryNames(folderName + "\\*.*")
select new Folder
{
Name = c,
Folders = LoadFolders(c)
}).ToList();
}
감사
답장을 보내 주셔서 감사합니다. 위의 DataContext를 설정합니다 (예 : FolderTreeView.DataContext = new {_Folders}). "List"을 "ObservableCollection "으로 변경하고 최상위 ObservableCollection 을 공개로 변경했습니다. 변경 없음. –
출력 창에 예외가있었습니다. "System.Windows.Data 오류 : '폴더 값'을 가져올 수 없습니다. 이 문제를 해결하려면 무엇을해야합니까? –
다시 감사합니다. 이것은 아무런 효과가 없었다.출력 창에서 여전히 동일한 예외가 발생했습니다. –