Wie funktioniert die Datenbindung?

Ich bin gerade dabei, Daten in eine ListBox einzufügen. Wenn Sie sich meine XAML ansehen, ist dies meine ListBox, die ich erstellt habe:

<ListBox 
            Height="517" 
            HorizontalAlignment="Left" 
            Margin="12,84,0,0" 
            Name="searchList" 
            VerticalAlignment="Top" 
            Width="438" 
            SelectionChanged="SearchList_SelectedEvent">

            <!-- What each listbox item will look like -->
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel>
                        <TextBlock Text="{Binding firstName}" FontSize="28" />
                        <TextBlock Text="{Binding lastName}" FontSize="28" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>

</ListBox>

Und in meiner CSS-Klasse, die dem Bildschirm zugeordnet ist, der die ListBox enthält:

public Search()
    {
        InitializeComponent();

        //The variables that I want to render in the list         
        string firstName = "John";
        string lastName = "Smith";
    }  

Meine Frage ist also, wie genau funktioniert die Datenbindung? Sie können sehen, dass ich in der XAML versucht habe, die Variablen zu binden, aber ich habe keine Ahnung, ob das funktionieren wird oder ob ich es richtig mache?

Woher weiß die XAML, wo diese Variablen zu finden sind?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage