Generar dinamicamente la columna mvvm

Intento hacer un ListView con generación dinámica de columna. Yo uso mvvm patern. ¿Cómo puedo implementar esto? En este momento solo tengo columnas estáticas.

<ListView ItemsSource="{Binding ProblemProducts}"
                  Grid.Row="1" Grid.RowSpan="4" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="4">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Spisujący" DisplayMemberBinding="{Binding _spisujacy}" Width="auto"/>
                    <GridViewColumn Header="Miejsce składowania" DisplayMemberBinding="{Binding MiejsceSkladowania}" Width="auto"/>
                    <GridViewColumn Header="Typ spisu" DisplayMemberBinding="{Binding _typSpisu}" Width="auto"/>
                    <GridViewColumn Header="Kod" DisplayMemberBinding="{Binding Kod}" width="auto"/>
                </GridView>
            </ListView.View>
        </ListView>

Respuestas a la pregunta(2)

Su respuesta a la pregunta