Artículo seleccionado en enlace ListView

Soy nuevo en WPF. En mi aplicación de muestra, estoy usando un ListView para mostrar el contenido de la propiedad. No sé cómo enlazar SelectedItem en ListView a la propiedad y luego vincular a TextBlock.

Window.xaml

<Window x:Class="Exec.App"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Main window" Height="446" Width="475" >

    <Grid>
        <ListView Name="ListViewPersonDetails" Margin="15,12,29,196" ItemsSource="{Binding Persons}" SelectedItem="{Binding CurrentSelectedPerson}">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="First name" DisplayMemberBinding="{Binding FirstName}"/>
                    <GridViewColumn Header="Last name" DisplayMemberBinding="{Binding LastName}"/>
                    <GridViewColumn Header="Address" DisplayMemberBinding="{Binding Address}"/>
                </GridView>
            </ListView.View>
        </ListView>

        <TextBlock Height="23" Name="textFirstNameBlock" FontSize="12" Margin="97,240,155,144">
                <Run Text="Name: " />
                <Run Text="{Binding CurrentSelectedPerson.FirstName}" FontWeight="Bold" />
        </TextBlock>

        <TextBlock Height="23" Name="textLastNameBlock" FontSize="12" Margin="97,263,155,121">
                <Run Text="Branch: " />
                <Run Text="{Binding CurrentSelectedPerson.LastName}" FontWeight="Bold" />
        </TextBlock>

        <TextBlock Height="23" Name="textAddressBlock" FontSize="12" Margin="0,281,155,103" HorizontalAlignment="Right" Width="138">
                <Run Text="City: " />
                <Run Text="{Binding CurrentSelectedPerson.Address}" FontWeight="Bold" />
        </TextBlock>

    </Grid>
</Window>

MainWindow.xaml.cs

Tman manager = new Tman();

        private List<Person> persons;
        public List<Person> Persons
        {
            get
            {
                return this.persons;
            }

            set
            {
                if (value != null)
                {
                    this.persons = value;
                }

            }
        }

        private Person currentSelectedPerson;
        public Person CurrentSelectedPerson
        {
            get
            {
                return currentSelectedPerson;
            }
            set
            {
                this.currentSelectedPerson = value;
            }
        }


        private void Window_Loaded(object sender, RoutedEventArgs e){   
            ListViewPersonDetails.ItemsSource= manager.GetPersons();

        }

Persona.cs

class Person
    {
        public string FirstName
        {
            get;
            set;
        }

        public string LastName
        {
            get;
            set;
        }

        public string Address
        {
            get;
            set;
        }

    }

Gracias por cualquier ayuda.

Respuestas a la pregunta(1)

Su respuesta a la pregunta