Как дать пустое сообщение ListView, когда нет источника данных

В моем приложении есть ListView с GridLayout. Сейчас я пытаюсь ввести группы ListView в свое приложение. Скажем, источник данных обычно имеет Group1, Group2 и Group3. Я хотел бы постоянно отображать все 3 группы независимо от того, есть ли в них элемент или нет. Когда в группе нет элемента, я хочу отобразить сообщение «пустая группа» под заголовком группы.

Я думаю, что способ по умолчанию, который WinRT обрабатывает, заключается в том, чтобы не отображать пустую группу, и во многих сценариях это имеет большой смысл. Я знаю, что для этого я могу добавить фиктивный элемент в представление списка, когда нет данных, но это своего рода хакерство.

Итак, есть ли лучший способ сделать это?


person louis.luo    schedule 08.05.2012    source источник


Ответы (1)


Просто привяжите свой ListView к коллекции объектов Group (где Group — это класс, который вы определяете, а Group1, Group2 и Group3 — такие объекты Group).

В дополнение к свойствам уровня группы (таким как заголовок), группа должна содержать коллекцию объектов Item.

В шаблоне данных ListView используйте другой ListView для отображения элементов Item для каждой группы.

Однако будьте осторожны, вложение GridViews приведет к вложенным ScrollViewers. Вы хотели бы удалить ScrollViewer из внутренних GridViews, изменив их шаблон управления.

person Kris Vandermotten    schedule 25.05.2012
comment
Спасибо за предложения, но я не вижу, чем это лучше, чем добавление фиктивного элемента представления списка... - person louis.luo; 25.05.2012
comment
Ну, потому что тебе не нужна пустышка? Я предполагаю, что фиктивный элемент потребует довольно сложной логики, чтобы убедиться, что фиктивный элемент отображается так, как вы хотите, и не реагирует на нажатия, щелчки и другие события, как реальный элемент. Этот подход удаляет все это. - person Kris Vandermotten; 25.05.2012