Я делаю WPF-приложение, которое имеет ListView с привязкой к данным. При загрузке приложения ширина ListViewColumns будет автоматически изменять размер, но при добавлении или изменении элемента он не будет автоматически изменять размер. Я попытался обновить представление списка, установив для ширины столбца значение auto, -1 или -2 в xaml и VB-коде, и я пытался изменить источник данных на ничто, прежде чем заполнять его элементами. Это код xaml:
<ListView x:Name="lsvPersons" Margin="5,5,5,35" ItemsSource="{Binding Persons}">
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}" Header="Name"/>
<GridViewColumn DisplayMemberBinding="{Binding Gender}" Header="Gender"/>
<GridViewColumn DisplayMemberBinding="{Binding Age}" Header="Age"/>
</GridView>
</ListView.View>
</ListView>
<Button x:Name="btnAddPerson" Content="Add" Height="25" Margin="0,0,200,5" Width="80"/>
Привязка работает с контроллером, который получает людей с Person.getPersons из базы данных SQL:
Private oController As New MainController()
Public Sub New()
MyBase.New()
Me.InitializeComponent()
Me.DataContext = oController
End Sub
После нажатия кнопки откроется окно для добавления человека. После закрытия окна элемент добавляется в представление списка с помощью следующего кода, который обновляет элементы в представлении списка:
lsvPersons.ItemsSource = Person.getPersons()
Итак, что мне нужно сделать, чтобы автоматически изменить размер столбцов списка при добавлении или редактировании элемента?