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 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...
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...
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 Maui Blazor Hybrid -Lösung in VS2022. Die meisten meiner Seiten werden in der Blazorwebview angezeigt, aber ein Paar wurde in XAML erstellt, um einige Cameraview -Komponenten zu...