by Anonymous » 27 Jan 2025, 11:05
Ich verwende
Wenn ich MyItems aus dem Ansichtsmodell fülle, funktioniert alles wie erwartet. Aber wenn ich dann
verwende
LeftPanel etwas anderem zuweisen und zurückwechseln, erhalte ich diese Fehlermeldung:
System.InvalidOperationException : „Ein Ankersteuerelement muss ein visueller Nachkomme des ScrollContentPresenter sein.“
Dies passiert nur, wenn ich die Liste manuell fülle und nicht ändere (sie ist leer). am Anfang). Aber ich denke, das liegt nur daran, dass kein Scrollen möglich ist, wenn die Liste leer ist.
Ich sollte auch erwähnen, dass die Listeninformationen asynchron gelesen werden und ich dies verwende, um sie zu füllen:
Code: Select all
void FillListBox(string[] files)
{
Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
{
CreateListboxItems(files);
});
}
private void CreateListboxItems(string[] files)
{
MyItems.Clear();
int length = files.Length;
for (int i = 0; i < length; i++)
{
ListBoxItem item = CreateListboxItem(files[i]);
RenderFrameItems.Add(item);
}
}
ListBoxItem CreateListboxItem(string filePath)
{
Avalonia.Media.FontStyle fontStyle = File.Exists(filePath) ? Avalonia.Media.FontStyle.Normal : Avalonia.Media.FontStyle.Italic;
ListBoxItem response = new ListBoxItem()
{
Content = filePath,
FontStyle = fontStyle,
};
return response;
}
Ich habe auch versucht, die Liste in eine eigene Scroll-Ansicht zu verschieben, aber das gleiche Ergebnis.
BEARBEITEN:
Verwenden von ObservableCollection< /code> anstelle von ObservableCollection funktioniert, aber ich erhalte nicht die gewünschte Formatierung
Ich verwende
[code]
[/code]
Wenn ich MyItems aus dem Ansichtsmodell fülle, funktioniert alles wie erwartet. Aber wenn ich dann
verwende[code]
[/code]
LeftPanel etwas anderem zuweisen und zurückwechseln, erhalte ich diese Fehlermeldung:
System.InvalidOperationException : „Ein Ankersteuerelement muss ein visueller Nachkomme des ScrollContentPresenter sein.“
Dies passiert nur, wenn ich die Liste manuell fülle und nicht ändere (sie ist leer). am Anfang). Aber ich denke, das liegt nur daran, dass kein Scrollen möglich ist, wenn die Liste leer ist.
Ich sollte auch erwähnen, dass die Listeninformationen asynchron gelesen werden und ich dies verwende, um sie zu füllen:
[code]void FillListBox(string[] files)
{
Avalonia.Threading.Dispatcher.UIThread.InvokeAsync(() =>
{
CreateListboxItems(files);
});
}
private void CreateListboxItems(string[] files)
{
MyItems.Clear();
int length = files.Length;
for (int i = 0; i < length; i++)
{
ListBoxItem item = CreateListboxItem(files[i]);
RenderFrameItems.Add(item);
}
}
ListBoxItem CreateListboxItem(string filePath)
{
Avalonia.Media.FontStyle fontStyle = File.Exists(filePath) ? Avalonia.Media.FontStyle.Normal : Avalonia.Media.FontStyle.Italic;
ListBoxItem response = new ListBoxItem()
{
Content = filePath,
FontStyle = fontStyle,
};
return response;
}
[/code]
Ich habe auch versucht, die Liste in eine eigene Scroll-Ansicht zu verschieben, aber das gleiche Ergebnis.
BEARBEITEN:
Verwenden von ObservableCollection< /code> anstelle von ObservableCollection funktioniert, aber ich erhalte nicht die gewünschte Formatierung