1

所以在我的应用程序的主页上,我有一个两行的网格。第一行是标题等。第二行是一堆数据的网格视图。

我想将我的主网格的第二行绑定到一个布尔值或其他东西,以检查用户是否已登录。

如果用户未登录,第二行将只显示文本:“请登录”

如果用户已登录,则将填充带有数据的 gridview。

就像现在一样,我的代码只有一个包含数据的 collectionviewsource

<CollectionViewSource
x:Name="groupedItemsViewSource"
Source="{Binding data}"
IsSourceGrouped="true"
ItemsPath="information"
d:Source="{Binding data, Source={d:DesignInstance IsDesignTimeCreatable=True, Type=local:HomeDesignData}}"/>

然后是两行网格,第一行是gridview

<Grid Style="{StaticResource LayoutRootStyle}">
    <Grid.RowDefinitions>
        <RowDefinition Height="140"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <GridView
        x:Name="itemGridView"
        AutomationProperties.AutomationId="ItemGridView"
        AutomationProperties.Name="Grouped Items"
        Grid.RowSpan="2"
        Padding="116,137,40,46"
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
        ItemTemplate="{StaticResource Standard500x130ItemTemplate}"
        SelectionMode="None"
        IsSwipeEnabled="false"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick">

再说一次,我只想找到一种方法将gridview完全切换为简单文本,绑定到布尔值或检查用户是否登录的东西

提前感谢您的任何输入

4

1 回答 1

0

实现此目的的一个非常简单的方法是在 GridView 上覆盖一个网格,并且仅在用户未登录时才显示它。为此,您可以利用 BooleanToVisibilityValueConverter。

<Grid Style="{StaticResource LayoutRootStyle}">
    <Grid.Resources>
        <converters:BooleanToVisibilityConverter x:Key="BoolToVis"/>
    </Grid.Resources>
    <Grid.RowDefinitions>
        <RowDefinition Height="140"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <GridView
        x:Name="itemGridView"
        Grid.Row="2"
        ...
    />
    <Grid Grid.Row="2" Background="Black"
          Visibility="{Binding IsLoggedIn, Converter={StaticResource BoolToVis}}"> <!-- The Grid control will fill the entire row
        <TextBlock Text="Log in dummy!" />
    </Grid>
</Grid>
于 2013-06-21T18:28:45.010 回答