收集视图主菜单xamarin形式

问题描述 投票:0回答:1

我正在研究Xamarin,我具有使用集合视图的Xamarin表单。我想在android主页上创建主菜单。我无法在收藏夹视图中自动更改显示视图项。

enter image description here

xamarin.forms xamarin.android
1个回答
0
投票

将ItemTemplate绑定到DynamicResource,并在单击按钮或您希望更改的位置更改Resource

  1. 在页面的资源中定义模板。
<ContentPage.Resources>
    <DataTemplate x:Key="menuTemplate1">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.3*" />
                <ColumnDefinition Width="0.7*" />
            </Grid.ColumnDefinitions>
            <Image Source="https://i.stack.imgur.com/di65V.jpg?s=328&amp;g=1" />
            <StackLayout Grid.Column="2">
                <Label Text="Hi there" />
                <Label Text="Hi there" />
            </StackLayout>
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="menuTemplate2">
        <Image Source="https://i.stack.imgur.com/di65V.jpg?s=328&amp;g=1" />
    </DataTemplate>
</ContentPage.Resources>
  1. 在Page.Xaml.cs中初始化DynamicResource
public MainPage()
{
    InitializeComponent();
    Resources["menuTemplate"] = Resources["menuTemplate1"];
}
  1. 绑定DynamicResource to ItemTemplate`
<CollectionView ItemTemplate="{DynamicResource menuTemplate}" ItemsSource="{Binding ItemCollection}" />
  1. 单击按钮或在需要的位置更改DynamicResource
void Button_Clicked(System.Object sender, System.EventArgs e)
{
    if(Resources["menuTemplate"] == Resources["menuTemplate1"])
    {
        Resources["menuTemplate"] = Resources["menuTemplate2"];
    }
    else
    {
        Resources["menuTemplate"] = Resources["menuTemplate1"];
    }
}

UI result

请对任何查询进行检查和评论。

© www.soinside.com 2019 - 2024. All rights reserved.