ich bin Anfänger in C# und mache gerade ein paar Übungen in DataBinding.
Textboxen im Konstruktor mit DataContext zu füllen, beherrsche ich schon gut...
Ich versuche gerade eine ListBox über DataContext mit Daten von Autos (Datentyp ObservableCollection) zu füllen. Leider wird nichts in der Vorschau oder beim Ausführen des Programms angezeigt.
Bei 'ItemsSource="{Binding AutoListe}"' wird der Wert 'AutoListe' mit drei Punkten markiert und wenn ich mit der Maus drübergehen, erscheint die Quick-Info:
Fehler |
Für Binding "AutoListe" wurde kein DataContext gefunden. |
Beim Ausführen des Programm kommt die Binding-Fehlermeldung:
Fehler |
Die Eigenschaft "AutoListe" wurde im Objekt vom Typ "ObservableCollection`1" nicht gefunden. |
Ich habe keine Ahnung was ich falsch mache - bei den Textboxen lief alles einwandfrei...
Hat jemand eine Idee?
Danke für jede Hilfe im Voraus.
LG,
sacoma
PS:
Hier ist mein Code von der UI 'SubTemplates3.xaml':
<Window x:Class="NeuesFensterWPF.SubTemplates3"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:NeuesFensterWPF"
mc:Ignorable="d"
Title="DataTemplates" Height="400" Width="400">
<Grid>
<ListBox Name="MyListBox" Margin="10" ItemsSource="{Binding AutoListe}">
</ListBox>
</Grid>
</Window>
Hier ist mein Code von der Code-Behind 'SubTemplates3.xaml.cs':
namespace NeuesFensterWPF
{
/// <summary>
/// Interaktionslogik für SubTemplates3.xaml
/// </summary>
public partial class SubTemplates3 : Window
{
public SubTemplates3()
{
InitializeComponent();
ObservableCollection<Auto> AutoListe = new ObservableCollection<Auto>
{
new Auto() { Marke = "Audi", Modell = "R8", PS = 610, Logo = "Images/logo_audi.jpg" },
new Auto() { Marke = "Bentley", Modell = "CS", PS = 630, Logo = "Images/logo_bentley.jpg" },
new Auto() { Marke = "Lambo", Modell = "LP 700", PS = 700, Logo = "Images/logo_lambo.jpg" },
new Auto() { Marke = "SEAT", Modell = "DSG", PS = 300, Logo = "Images/logo_seat.jpg" },
new Auto() { Marke = "Skoda", Modell = "RS", PS = 230, Logo = "Images/logo_skoda.jpg" },
new Auto() { Marke = "VW", Modell = "TDI 8", PS = 240, Logo = "Images/logo_vw.jpg" }
};
DataContext = AutoListe;
}
}
}
Hier wäre noch der Code aus der Klasse 'Auto' falls es von Bedeutung ist:
namespace NeuesFensterWPF
{
public class Auto
{
public string Marke { get; set; }
public string Modell { get; set;}
public int PS { get; set; }
public string Logo { get; set; }
public override string ToString()
{
//base.ToString();
return $"Marke: {Marke} | Modell: {Modell} | Leistung: {PS} | Logo: {Logo}";
}
}
}