c# - 将按钮文本绑定到 Carouselview 中的变量
问题描述
我对 Xamarin 相当陌生,我正在尝试将文本数据绑定到我希望在轮播视图中存在的按钮。我无法让按钮显示或显示文本。当按钮位于轮播视图之外时,绑定有效,因为我可以使用 x:Name。我的研究告诉我,我不能在轮播中使用 x:Name,因为它期望控件发生变化。
按钮显示日期,当您向左或向右滑动时,日期会相应更改,我可以通过滑动更改日期,但我什么也看不到。
<forms:CarouselView x:Name="MainCarouselView" Grid.Row="1" >
<forms:CarouselView.ItemTemplate>
<DataTemplate>
<Button Text="{Binding buttonDate}" BackgroundColor="Red"/>
</DataTemplate>
</forms:CarouselView.ItemTemplate>
</forms:CarouselView>
代码隐藏如下。
public MyPage()
{
InitializeComponent();
this.BindingContext = this;
var buttonDate = new DateButton
{
ButtonDate = DateTime.Now.ToString()
};
}
public class DateButton
{
public string ButtonDate { get; set; }
}
在此先感谢您的任何指点。
解决方案
public class Item {
DateTime Date { get; set; }
}
var data = new List<Item>();
data.Add(new Item { Date = DateTime.Now };
data.Add(new Item { Date = DateTime.Now.AddDays(1) };
data.Add(new Item { Date = DateTime.Now.AddDays(2) };
MainCarouselView.ItemsSource = data;
因为您的 ItemsSource 是 a List<Item>
,所以 DataTemplate 的绑定上下文将Item
是当前“活动”的那个,所以Binding Path
应该是 a Property
on Item
。
<Button Text="{Binding Date}" BackgroundColor="Red"/>
推荐阅读
- c# - 当项目已经有值时如何将枚举与按位运算符一起使用
- python - 带有边界条件的numpy cumsum求和
- string - 如何向用户输入字符串列表
- python - 在 mac (macOS Catalina) 上的 python 中使用 GPU 进行 PIL
- regex - 正则表达式查找内联脚本中是否存在对 jQuery 的引用
- python - pandas 'DataError:没有要聚合的数字类型'
- lua - 使用 LUA:如何从表中删除项目?
- python - git ignore 使用 GCloud 的 gcloudignore 时不忽略文件
- mysql - mysql 的 concat 值分组
- azure-devops - Team Retrospective 扩展是否会更永久地替换为 Azure Devops 平台?