【发布时间】:2019-02-14 17:26:38
【问题描述】:
我有一个 ListView 并希望对其进行上下排序。这是xml
<ListView x:Name="ListRegister" ItemsSource="{Binding Registrations}" HasUnevenRows="True" SelectionMode="Single">
<ListView.Behaviors>
<b:EventToCommandBehavior EventName="ItemTapped" Command="{Binding CommandGoDetail}" EventArgsParameterPath="Item" />
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout>
<Frame >
<StackLayout>
<Label Text="{Binding Date}" Style="{StaticResource registerItemDateText}"/>
</StackLayout>
</Frame>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
以及“按钮”(在我的 SortUp() 和 sortDown() 函数之间交替)。该按钮将文本更改为“向上”和“向下”,因此我知道它可以在屏幕上使用。
<TapGestureRecognizer Command="{Binding CommandSort}"/>
这些功能似乎有效
Registrations.Sort((x, y) => DateTime.Compare(y.Date, x.Date));
Registrations.Sort((x, y) => DateTime.Compare(x.Date, y.Date));
当调用其中一个函数时,列表正确地向上或向下排序,但当按下按钮时,列表不会自行更新为另一个排序。
我在哪里搞砸了?
编辑:
命令排序代码
private void HandleSort(Registration obj)
{
if(SortRecent)
{
SortRecent = false;
SortText = "Plus ancien";
SortImageSource = "lightDownArrow";
SortDown();
}
else
{
SortRecent = true;
SortText = "Plus récent";
SortImageSource = "lightUpArrow";
SortUp();
}
}
注册的类型为:
List<Registration> Registrations
具有字符串名称和 DateTime 日期的注册
【问题讨论】:
-
什么是注册类型? CommandSort 的代码在哪里?
-
@Jason 我更新了,sortUp 和 sortDown 是两个 Registrations.Sort
标签: xamarin xamarin.forms