Xamarin Listview筛选指南
使用Xamarin开发我的第一个应用程序。我已经创建了一个带有母版页的跨平台移动应用程序 我已经在ItemsPage.xaml上运行了我的列表,我可以使用ListView上方的搜索栏过滤列表 我想扩展这个能力。我的列表中的每个项目都有一个类型,或与之关联的多个类型。我在一个SQLLite数据库中得到了这个 我想在每种类型旁边有一个开关控件。这是他们可以设置的,它会过滤列表。我对编写实际的过滤过程很有信心,但我不确定如何继续 下面Jason的评论引导我使用了一个模式页面 我已使用以下选项设置了模式页面:Xamarin Listview筛选指南,listview,xamarin,filtering,Listview,Xamarin,Filtering,使用Xamarin开发我的第一个应用程序。我已经创建了一个带有母版页的跨平台移动应用程序 我已经在ItemsPage.xaml上运行了我的列表,我可以使用ListView上方的搜索栏过滤列表 我想扩展这个能力。我的列表中的每个项目都有一个类型,或与之关联的多个类型。我在一个SQLLite数据库中得到了这个 我想在每种类型旁边有一个开关控件。这是他们可以设置的,它会过滤列表。我对编写实际的过滤过程很有信心,但我不确定如何继续 下面Jason的评论引导我使用了一个模式页面 我已使用以下选项设置了模式
<Grid Margin="0" Padding="0">
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<Button x:Name="btn_CommitChanges" Text="Save Filters" Clicked="btn_CommitChanges_OnClicked" Grid.Row="0" Grid.Column="0"></Button>
<Button x:Name="btn_CancelChanges" Text="Cancel" Clicked="btn_CancelChanges_OnClicked" Grid.Row="0" Grid.Column="1"></Button>
<ScrollView Grid.ColumnSpan="2" Grid.Row="1" Grid.Column="0">>
<ListView x:Name="CategoriesListView"
ItemsSource="{Binding Categories}"
VerticalOptions="FillAndExpand"
HasUnevenRows="true"
RefreshCommand="{Binding LoadCategoriesCommand}"
IsRefreshing="{Binding IsBusy, Mode=OneWay}"
CachingStrategy="RecycleElement">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Switch IsToggled="{Binding isSelected}" Toggled="OnSwitchToggled" x:Name="{Binding CategoryType}"></Switch>
<Label Text="{Binding CategoryType}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ScrollView>
</Grid>
总之,主要问题是如何在OnClick事件中生成与启用的开关控件关联的值数组,或者如何确定切换了哪个开关这并不是一个真正有明确答案的问题。我可能会建议将过滤器用户界面置于点击按钮后弹出的模式。听起来是个不错的建议。如果我想把按钮放在搜索栏旁边,我会怎么做?类似于[BTN][Search Bar-----]的东西也是弹出的模式,它是如何工作的?这是另一页吗?如果不是很快,我会用谷歌搜索,但我猜你可能知道,我可以用它作为答案。
public void btn_CommitChanges_OnClicked(object sender, EventArgs e)
{
//SAVE SETTINGS TO USER CONFIGURATION
Navigation.PopModalAsync();
}
protected void OnSwitchToggled(object sender, EventArgs e)
{
Switch sw = (Switch)sender;
//How to get which Switch Control Toggled
}