ViewCell没有约束力

时间:2016-04-30 11:44:10

标签: mvvm xamarin xamarin.forms

我的xaml页面上有以下listView绑定。我从viewModel绑定数据。但这些值并不与细胞结合。

 <ListView x:Name="historyList" ItemsSource="{Binding History}" HasUnevenRows="true">
    <ListView.ItemTemplate>
      <DataTemplate>
        <ViewCell>
          <ViewCell.View>
            <StackLayout Orientation="Horizontal" Padding="10, 5, 10, 5" Spacing="0" HorizontalOptions="FillAndExpand" >
              <Label Text="{Binding History.DayNumber}" HorizontalOptions="Center" FontSize="15" TextColor="Red" VerticalOptions="Center"></Label>
            </StackLayout>
          </ViewCell.View>
        </ViewCell>
      </DataTemplate>
    </ListView.ItemTemplate>
  </ListView>

我的历史记录对象具有属性DayNumber,但该值未绑定到标签?

有什么建议吗?或者我错过了什么?

谢谢。

修改

以下是我获取历史记录列表的方法:

 void GetAllHistory()
    {
        foreach(CheckInTimeHistory h in App.Database.GetHistoryCheckins(null))
        {
            CheckInHistoryItem hi = new CheckInHistoryItem();

            hi.CheckedIn = (h.AutoCheckIn ? false : true);
            hi.CheckInTime = h.CheckInTime.AddSeconds(-h.CheckInTime.Second).ToString("HH:mm-ss tt");
            hi.DayNumber = h.CheckInTime.Day.ToString();
            hi.DayText = h.CheckInTime.DayOfWeek.ToString().Substring(0, 2);

            History.Add(hi);
        }
    }


    public class CheckInHistoryItem
    {
        public String DayText, DayNumber, CheckInTime;
        public Boolean CheckedIn;
    }

2 个答案:

答案 0 :(得分:6)

您将在调试输出中看到类似这样的警告:

  

绑定:&#39; DayNumber&#39;在&#39; .... CheckInHistoryItem&#39;,目标属性:&#39; Xamarin.Forms.Label.Text&#39;

属性必须是C#属性。只需将课程改为

即可
public class CheckInHistoryItem
{
    public String DayText { get; set; }
    public String DayNumber { get; set; }
    public String CheckInTime { get; set; }
    public Boolean CheckedIn { get; set; }
}

并使用DayNumber代替History.DayNumber

<Label Text="{Binding DayNumber}" HorizontalOptions="Center" FontSize="15" TextColor="Red" VerticalOptions="Center"></Label>

答案 1 :(得分:0)

假设History是静态var:

ItemsSource="{x:Static local:History}">

并改变:

{Binding History.DayNumber}

为:

{Binding DayNumber}

绑定基础知识:

https://developer.xamarin.com/guides/xamarin-forms/user-interface/xaml-basics/data_binding_basics/#Bindings_and_Collections