Отображать некоторый текст, когда в связанном списке нет элементов - PullRequest
5 голосов
/ 07 февраля 2011

Ниже приведен синтаксис для моего списка, который привязан к классу ....

<ListView ItemContainerStyle="{StaticResource listViewStyle}" Name="transactionListView" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding}" MouseDoubleClick="transactionListView_MouseDoubleClick" IsSynchronizedWithCurrentItem="True" >
    <ListView.View>
        <GridView ColumnHeaderContainerStyle="{StaticResource gridViewHeaderColumnStyle}">
            <GridView.Columns>
                <GridViewColumn Width="70" Header="Serial" DisplayMemberBinding="{Binding Path=Serial}" />
                <GridViewColumn Width="100" Header="Date" DisplayMemberBinding="{Binding Path=Date, StringFormat={}{0:dd-MM-yyyy}}" />
                <GridViewColumn Width="200" Header="Seller" DisplayMemberBinding="{Binding Path=Seller}" />
                <GridViewColumn Width="200" Header="Buyer" DisplayMemberBinding="{Binding Path=Buyer}" />
                <GridViewColumn Width="70" Header="Bales" DisplayMemberBinding="{Binding Path=Bales}" />
            </GridView.Columns>
        </GridView>
    </ListView.View>
</ListView>

* Как я могу отобразить некоторый текст, когда список пуст или не содержит элементов?

Ответы [ 2 ]

21 голосов
/ 07 февраля 2011

Хитрость в переопределении шаблона ListView.Когда в ListView нет элементов, вы должны установить свой ControlTemplate с TextBlock:

<ListView Name="List" ItemsSource="{Binding Items}">
    <ListView.Style>
        <Style TargetType="ListView">
            <Style.Triggers>
                <Trigger Property="HasItems"
                         Value="False">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="ListView">
                                <TextBlock Text="No items..."/>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.Style>
</ListView>
2 голосов
/ 07 февраля 2011

Сам ListView не предоставляет эту функциональность. Самый простой подход - это поместить TextBlock перед ListView с его Visibility, установленным в Collapsed Затем вы можете сделать его видимым, если в вашем списке нет элементов.

Если вам нужна помощь по конкретным вопросам, просьба расширить вопрос.

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