我对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; }
}
感谢任何指针。
答案 0 :(得分:2)
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是List<Item>
,所以数据模板的绑定上下文将是Item
当前处于“活动”状态的任何内容,因此Binding Path
应该是Property
Item
。
<Button Text="{Binding Date}" BackgroundColor="Red"/>