WPF: добавление кнопки как «Показать больше», при которой при нажатии на нее будут загружены оставшиеся элементы в itemControl, который уже находится в Binding a Collection - PullRequest
1 голос
/ 30 марта 2020

Я немного новичок в WPF (XAML), и у меня есть ItemsControl, связанный со списком со свойством MyCollections. Теперь мое требование состоит в том, чтобы изначально отображать только 1-й элемент из списка и иметь кнопку Показать больше в конце списка. Если щелкнуть по нему, отобразятся остальные элементы из коллекции.

Пока это мой XAML, отображающий всю коллекцию:

<ItemsControl x:Name="ContentRoot" ItemsSource="{Binding MyCollections}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <grid>
            <TextBox Text="{Binding }" /> 
            <TextBox Text="{Binding }" />    
            </grid>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

1 Ответ

2 голосов
/ 30 марта 2020

Можно отображать как ContentControl (который отображает первый элемент коллекции), так и ItemsControl (который отображает всю коллекцию), только если отмечен, например, ToggleButton.

<StackPanel>
    <StackPanel.Resources>
        <BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
        <DataTemplate DataType="{x:Type local:MyViewModel}">
            <Grid>
                <TextBox Text="{Binding}" />
            </Grid>
        </DataTemplate>
    </StackPanel.Resources>
    <ContentControl Content="{Binding MyCollection[0]}"/>
    <ToggleButton x:Name="toggle" Content="Show more"/>
    <ItemsControl ItemsSource="{Binding MyCollection}" Visibility="{Binding ElementName=toggle, Path=IsChecked, Converter={StaticResource BooleanToVisibilityConverter}}"/>
</StackPanel>

Затем вы можете адаптировать его под свои нужды.

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