c# - 集中放置一个 CollectionView 项目
问题描述
在CollectionView
我有大约 10 个元素,填充了我的类的对象,其中包含 type 的属性DateTime
。
public class MyCalendar
{
public DateTime Datet { get; set; }
}
我已将它们插入的类的对象Observablecollection<MyCalendar> OCCalendar
在CollectionView
我插入了ObservableCollection
asItemsSource
接下来,我在ObservableCollection
withDateTime
属性中查找对象并将其DateTime.Now.Date
与DateTime
在今天日期查找的对象进行比较。它找到了它,我尝试将它插入到中心位置,但CollectionView
它没有移动。
ColCalendar.ItemsSource = OCCalendar;
var GiornoCorrente = OCCalendar.Where(x => x.Datet.Date == DateTime.Now.Date).First();
ColCalendar.ScrollTo(GiornoCorrente, position: ScrollToPosition.Center);
有足够的CollectionView
元素来左右滚动
解决方案
接下来,我在 ObservableCollection 中查找具有 DateTime 属性的对象,并将其与 DateTime.Now.Date 进行比较,以查找在今天日期具有 DateTime 的对象。它找到了它,我尝试将它插入到中心位置,但 CollectionView 没有移动。
您在 Collectionview 中只有 10 个项目,我猜 collectionview 不需要滚动到,这些项目将显示在屏幕上。
ScrollToPosition.Center 成员表示该项目应该滚动到视图的中心,就像您使用鼠标的滚轮将特定项目滚动到特定位置一样。
<StackLayout>
<Button
x:Name="btn1"
Clicked="btn1_Clicked"
Text="scrollto" />
<CollectionView x:Name="collectionView" ItemsSource="{Binding models}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label HeightRequest="30" Text="{Binding Name}" />
<Label Grid.Column="1" Text="{Binding time}" />
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</StackLayout>
public partial class Page3 : ContentPage
{
public Page3()
{
InitializeComponent();
this.BindingContext = new scrollviewmodel();
}
private void btn1_Clicked(object sender, EventArgs e)
{
scrollviewmodel viewmodel = BindingContext as scrollviewmodel;
scrollmodel item = viewmodel.models.FirstOrDefault(m => m.time.Date == DateTime.Now.Date);
collectionView.ScrollTo(item, position: ScrollToPosition.Center);
}
}
public class scrollviewmodel
{
public ObservableCollection<scrollmodel> models { get; set; }
public scrollviewmodel()
{
models = new ObservableCollection<scrollmodel>()
{
new scrollmodel() { Name = "date 1", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 2", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 3", time = new DateTime(2021, 1, 1) },
new scrollmodel() { Name = "date 4", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 5", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 6", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 7", time = new DateTime(2021, 1, 1) },
new scrollmodel() { Name = "date 8", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 8", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 10", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 12", time = new DateTime(2021, 3, 1) },
new scrollmodel() { Name = "date 13", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date s", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 7c", time = new DateTime(2021, 1, 1) },
new scrollmodel() { Name = "date 8v", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 8b", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 1n0", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 12n", time = new DateTime(2021, 3, 2) },
new scrollmodel() { Name = "date 13h", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 4", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date a", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 5", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 6", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 7", time = new DateTime(2021, 1, 1) },
new scrollmodel() { Name = "date 8", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 8", time = new DateTime(2018, 1, 1) },
new scrollmodel() { Name = "date 10", time = new DateTime(2019, 1, 1) },
new scrollmodel() { Name = "date 12", time = new DateTime(2021, 3, 1) },
new scrollmodel() { Name = "date 13", time = new DateTime(2018, 1, 1) }
};
}
}
public class scrollmodel
{
public string Name { get; set; }
public DateTime time { get; set; }
}
推荐阅读
- git - git renormalizing 找不到所有需要它的文件
- arrays - Swift:使用基于嵌套数组的键创建字典
- scala - Sqlcontext parquet 读取抛出错误:java.lang.UnsupportedOperationException:输入流不支持字节缓冲区读取
- python - Chiplotle 仅适用于 python 2 吗?
- python - 基于 1 列和另一组的值合并 2 个 csv 文件
- amazon-web-services - 如何通过 Terraform 创建 EKS 节点的 Cloudwatch 警报
- ml.net - ML.Net 模型生成器教程和 Azure 机器学习系统不正确还是我遗漏了什么?
- android - 原生 android UI 组件,使其成为 npm 包
- vba - 使用 VBA 向 Outlook 邮件添加附件失败并出现错误 80070005(权限不足),但前提是邮件还没有附件
- python - Python复制粘贴文件