WPF Listview пустой текст - PullRequest
5 голосов
/ 19 июня 2009

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

Ответы [ 2 ]

11 голосов
/ 20 июня 2009

Этот XAML будет делать нечто подобное, он имеет видимый 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>
0 голосов
/ 19 июня 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...