Скрыть рамку в настраиваемом ContentView

Я использую страницу просмотра содержимого под названием CardViewTemplate.xaml в моем ListView для визуализации некоторого содержимого с двумя фреймами, один из которых должен быть видимым, а другой - нет.

        <ContentView xmlns="http://xamarin.com/schemas/2014/forms"
                     xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        ...>
        <Frame  IsVisible="{Binding IsNotBreak}" IsClippedToBounds="True">
    .... content ....
        </Frame>
        <Frame IsVisible="{Binding IsBreak}" IsClippedToBounds="True">
    --content 2-
        </Frame>
      </ContentView>

и приведенная выше страница используется в представлении списка для привязки и просмотра некоторых данных в представлении списка, как показано ниже:

<ListView x:Name="listView" SelectedItem="{Binding SelcetedItem,Mode=TwoWay}" 
          RowHeight="-1" 
          ItemsSource="{Binding SelectedCard}" HasUnevenRows="True"   >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Custom:CardViewTemplate/>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </StackLayout>

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

Фрейм 1 не просматривает никакого содержания


person AAHN    schedule 11.11.2017    source источник


Ответы (1)


Это потому, что у ContentView должен быть только один дочерний элемент, а второй Frame заменяет первый Frame.

Попробуйте добавить контейнер представления, например AbsoluteLayout или Grid, чтобы удерживать два кадра внутри ContentView:

<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    ...>
    <AbsoluteLayout>

        <Frame  IsVisible="{Binding IsNotBreak}" IsClippedToBounds="True">
    .... content ....
        </Frame>
        <Frame IsVisible="{Binding IsBreak}" IsClippedToBounds="True">
    --content 2-
        </Frame>

    </AbsoluteLayout>
</ContentView>
person Sharada Gururaj    schedule 13.11.2017