Я недавно написал, мое первое приложение WPF, в котором есть список элементов, которые опрашиваются из веб-службы.Элементы отображаются / привязаны к данным в ListView через GridView.Фоновый поток периодически опрашивает веб-службу и обновляет список.
Если, скажем, у меня было три элемента, изначально привязанных к ListView, которые просто отображают описание и три описания, где что-то вроде:
- ProjectA
- ProjectB
- ProjectC
Позже добавляется новый элемент с описанием 'AReallyReallyLongProjectName', в результате я получаю список вроде:
- ProjectA
- ProjectB
- ProjectC
- AReallyR
GridViewColumn не будет обновлять свою ширину и впоследствии будет обрезать любыеновые элементы, которые расширили исходную ширину.
Я добавил этот фрагмент кода, который заставляет столбец изменить размер, но это кажется немного странным.(Просто кажется странным задавать ширину, чтобы просто вернуть ее в ноль для принудительного изменения размера)
if(gridView != null) {
foreach(var column in gridView.Columns) {
if (double.IsNaN(column.Width) column.Width = column.ActualWidth;
column.Width = double.NaN;
}
}
Есть ли лучшее, более элегантное решение для достижения этой же цели?