Вопрос по wpf, .net, listview, c# – WPF Listview пустой текст

5

Как показать в WPF Listview с помощью GridView пустой текст (например, в ASP.net), например, & quot; пожалуйста, выберите человека & quot; или "найдено 0 предметов"?

Ваш Ответ

2   ответа
-2

которое возвращает нужный текст? Слот в фиктивном объекте, для которого String представляет текст, который вы хотите ..

11

он имеет видимый ListView, показывающий список и скрытое сообщение, и переключает видимость, когда список пуст, с помощью триггера.

Приведенный ниже код будет работать с любым IList или ICollection, но ту же технику можно использовать с любым источником данных, как всегда, если вы хотите, чтобы дисплей обновлялся при добавлении или удалении элементов, вам необходимо использовать ObservableCollection или аналогичное.

ContentPresenter присутствует, потому что вы можете использовать триггеры только внутри шаблона или стиля, поэтому мы помещаем наши элементы управления в DataTemplate и используем ContentPresenter для его отображения.

Если вы хотите, чтобы сообщение появлялось внутри ListView, все, что вам нужно сделать, - это удалить Setter, который скрывает ListView, и добавить некоторое поле в TextBlock, чтобы разместить его там, где должен быть первый элемент в ListVIew.

<ContentPresenter Content="{Binding}">
    <ContentPresenter.ContentTemplate>
        <DataTemplate>
            <Grid>
                <ListView Name="list" ItemsSource="{Binding MyList}"/>
                <TextBlock Name="empty" Text="No items found" Visibility="Collapsed"/>
            </Grid>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding MyList.Count}" Value="0">
                    <Setter TargetName="list" Property="Visibility" Value="Collapsed"/>
                    <Setter TargetName="empty" Property="Visibility" Value="Visible"/>
                </DataTrigger>                        
            </DataTemplate.Triggers>
        </DataTemplate>
    </ContentPresenter.ContentTemplate>
</ContentPresenter>
Этот пример не работает, чтобы скрыть TextBlock, если он не пустой, потому что значение Visibility не является логическим. Можно ли переключить его на скрытый? Alexander Zwitbaum
@ Shurup, я не понимаю ваш комментарий, TextBlock скрыт, когда список не пуст - но вы можете посмотреть BooleanToVisibilityConverter Nir

Похожие вопросы