Ich erstelle einen benutzerdefinierten Datei -Explorer für meine mobile App in Maui auf .NET 9. Bisher sind die Erstellung und das Laden von Ordner/Datei wiederholt (Code ermöglicht unendliche Verschachtung). Das Problem, auf das ich jetzt begegnet bin, ist jedoch, dass das XAML selbst rekursiv macht, ohne nur immer mehr Sammlungsansichten zu verhindern.
< /code>
Und dies ist der Code dahinter, der die Dateien lädt (scheint in Ordnung zu funktionieren, wenn ich das Verzeichnis auf meinem Telefon inspiziere): < /p>
private void LoadFilesAndFolders()
{
if (Directory.Exists(_myReSEEptImagesFolder))
{
var items = Directory.GetFileSystemEntries(_myReSEEptImagesFolder);
foreach (var item in items)
{
var fileItem = new FileItem
{
Name = Path.GetFileName(item),
Parent = null,
Path = item,
IsFolder = Directory.Exists(item),
Items = new ObservableCollection(),
OnTappedCallback = OpenPath
};
if (fileItem.IsFolder)
{
LoadSubfolderItems(fileItem);
}
FileItems.Add(fileItem);
}
}
}
// Recursive function to load subfolders
private void LoadSubfolderItems(FileItem parentFolder)
{
var subItems = Directory.GetFileSystemEntries(parentFolder.Path);
foreach (var subItem in subItems)
{
var subFileItem = new FileItem
{
Name = Path.GetFileName(subItem),
Parent = parentFolder,
Path = subItem,
IsFolder = Directory.Exists(subItem),
Items = new ObservableCollection(),
OnTappedCallback = OpenPath
};
// If it's a folder, recursively load its children
if (subFileItem.IsFolder)
{
LoadSubfolderItems(subFileItem);
}
parentFolder.Items.Add(subFileItem);
}
}
Ich erstelle einen benutzerdefinierten Datei -Explorer für meine mobile App in Maui auf .NET 9. Bisher sind die Erstellung und das Laden von Ordner/Datei wiederholt (Code ermöglicht unendliche Verschachtung). Das Problem, auf das ich jetzt begegnet bin, ist jedoch, dass das XAML selbst rekursiv macht, ohne nur immer mehr Sammlungsansichten zu verhindern.[code]
< /code> Und dies ist der Code dahinter, der die Dateien lädt (scheint in Ordnung zu funktionieren, wenn ich das Verzeichnis auf meinem Telefon inspiziere): < /p> private void LoadFilesAndFolders() { if (Directory.Exists(_myReSEEptImagesFolder)) { var items = Directory.GetFileSystemEntries(_myReSEEptImagesFolder);
foreach (var item in items) { var fileItem = new FileItem { Name = Path.GetFileName(item), Parent = null, Path = item, IsFolder = Directory.Exists(item), Items = new ObservableCollection(), OnTappedCallback = OpenPath };
if (fileItem.IsFolder) { LoadSubfolderItems(fileItem); }
FileItems.Add(fileItem); } } }
// Recursive function to load subfolders private void LoadSubfolderItems(FileItem parentFolder) { var subItems = Directory.GetFileSystemEntries(parentFolder.Path);
foreach (var subItem in subItems) { var subFileItem = new FileItem { Name = Path.GetFileName(subItem), Parent = parentFolder, Path = subItem, IsFolder = Directory.Exists(subItem), Items = new ObservableCollection(), OnTappedCallback = OpenPath };
// If it's a folder, recursively load its children if (subFileItem.IsFolder) { LoadSubfolderItems(subFileItem); }
parentFolder.Items.Add(subFileItem); } } [/code] Hier ist die DateiItem Modellklasse: [code]public class FileItem : INotifyPropertyChanged { public FileItem? Parent; private bool _isSelected; private string _name; private bool _isFolder; private ObservableCollection _items; private bool _isExpanded; private string _path;
public event PropertyChangedEventHandler PropertyChanged;
public bool IsSelected { get => _isSelected; set { if (_isSelected != value) { _isSelected = value; OnPropertyChanged(nameof(IsSelected)); } } }
public string Name { get => _name; set { if (_name != value) { _name = value; OnPropertyChanged(nameof(Name)); OnPropertyChanged(nameof(DisplayName)); } } }
public string Path { get => _path; set => SetProperty(ref _path, value); }
public bool IsFolder { get => _isFolder; set { if (SetProperty(ref _isFolder, value) && _isFolder && _items == null) { Items = new ObservableCollection(); } } }
public bool IsExpanded { get => _isExpanded; set { _isExpanded = value; OnPropertyChanged(nameof(IsExpanded)); } }
public ObservableCollection Items { get => _items; set => SetProperty(ref _items, value); }
public ICommand TapCommand { get; }
// Callbacks for external handling public Action OnTappedCallback { get; set; }
public FileItem() { TapCommand = new Command(ExecuteTapCommand); }
Ich erstelle eine Maui Blazor -App, aber ich muss einen QR -Leser implementieren, der es erfordert, sie in XAML zu verwenden. Bevor ich den QR -Leser implementiert habe, habe ich getestet, wie XAML...
Ich versuche, Daten mithilfe einer IDs -Reihe von einem Datensatz mit einer Postgresql -Tabelle mit PSYCOPG2 in Python zu sammeln. Hier ist der Code:
for i in range(0, len(ids_df), 2000):
print(f...
Eine reguläre Funktion kann problemlos einen Aufruf an sich selbst in ihrer Definition enthalten. Ich kann jedoch nicht herausfinden, wie ich das mit einer Lambda-Funktion machen soll, und zwar aus...
Ich habe mit dem MVVM -Muster an einer .NET -Maui -Anwendung gearbeitet und beginne, die übliche Praxis in Frage zu stellen, iCommand -Eigenschaften in ViewModels zu setzen. Während dies der...
Ich habe eine .NET MAUI Blazor Hybrid- und Web -App -Lösung mit den vier mobilen, Web-, gemeinsam genutzten und Client -Projekten.
Der größte Teil der Anwendung befindet sich im gemeinsam genutzten...