WPF Listview пустой текст

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

Ответы на вопрос(2)

Решение Вопроса

он имеет видимый 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>
 Alexander Zwitbaum22 июн. 2009 г., 17:26
Этот пример не работает, чтобы скрыть TextBlock, если он не пустой, потому что значение Visibility не является логическим. Можно ли переключить его на скрытый?
 Nir23 июн. 2009 г., 08:35
@ Shurup, я не понимаю ваш комментарий, TextBlock скрыт, когда список не пуст - но вы можете посмотреть BooleanToVisibilityConverter

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

Ваш ответ на вопрос