Bei deinem Code geht es sehr durcheinander zu. Aus allen möglichen Google-Ecken hast du wohl Code zusammengesucht.
Mal verwendest du das CommunityToolkit, mal ReactiveUI. Warum sollte in der Listbox Items falsch sein? Siehe hier: https://docs.avaloniaui.net/docs/controls/listbox
Die Commands der Button verwendest du nicht entsprechend dem MVVM-Pattern. Siehe hier: https://docs.avaloniaui.net/docs/data-binding/binding-to-commands
Mein Code sieht dann so aus: (Ich hab die Bilder mal weggelassen.)
public class MainWindowViewModel : ViewModelBase
{
public MainWindowViewModel()
{
AddCommand = ReactiveCommand.Create(Add);
}
public AvaloniaList<ObservableBitmapAndText> ListBoxItems { get; set; } = new AvaloniaList<ObservableBitmapAndText>();
public ReactiveCommand<Unit, Unit> AddCommand { get; }
void Add()
{
ListBoxItems.Add(new ObservableBitmapAndText { Text = "blub" });
}
}
public class ObservableBitmapAndText : ViewModelBase
{
private string _text;
public string Text
{
get => _text;
set => this.RaiseAndSetIfChanged(ref _text, value);
}
}
<DockPanel LastChildFill="True">
<Button Content="Add" Command="{Binding AddCommand}" DockPanel.Dock="Bottom"/>
<ListBox DockPanel.Dock="Top" Name="listBox" Items="{Binding ListBoxItems}" Height="500" Width="500">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Bild "/>
<TextBlock Text="{Binding Text}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DockPanel>