【发布时间】:2019-09-15 00:22:00
【问题描述】:
我有一个非常简单的 ListView,它被编程为显示具有三个属性的列表。每当我尝试将集合绑定到该列表视图时,我都会收到 InvalidCast 异常。我不知道这有什么问题!
下面是我的 XAML
<ContentPage.Content>
<StackLayout>
<ListView x:Name="listAttendanceTiming" HasUnevenRows="True">
<ListView.HeaderTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Text="From Time" HorizontalTextAlignment="Start" FontSize="14"
Grid.Row="0" Grid.Column="0" />
<Label Text="To Time" HorizontalTextAlignment="Start" FontSize="14"
Grid.Row="0" Grid.Column="1" />
<Label Text="Remarks" HorizontalTextAlignment="Start" FontSize="14"
Grid.Row="0" Grid.Column="2" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.HeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Label Text="{Binding FromTimeString}" HorizontalTextAlignment="Start" FontSize="14" Grid.Column="0" />
<Label Text="{Binding ToTimeString}" HorizontalTextAlignment="Start" FontSize="14" Grid.Column="1" />
<Label Text="{Binding Remarks}" HorizontalTextAlignment="Start" FontSize="14" Grid.Column="2" />
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>
</ContentPage.Content>
这是我的 C#
var timings = new List<Timing>();
var timing = new Timing();
timing.Id = 1;
timing.FromTime = DateTime.Now;
timing.FromTimeString = DateTime.Now.ToString("hh:mm ttBel");
timing.ToTime = DateTime.Now;
timing.ToTimeString = DateTime.Now.ToString("hh:mm tt");
timing.Code = "I";
timing.Remarks = "Inside";
timings.Add(timing);
listAttendanceTiming.ItemsSource = timings;
public class Timing
{
public int Id { get; set; }
public DateTime FromTime { get; set; }
public string FromTimeString { get; set; }
public DateTime ToTime { get; set; }
public string ToTimeString { get; set; }
public string Code { get; set; }
public string Remarks { get; set; }
}
例外
未处理的异常:
System.ArgumentException:值是 HeaderTemplate 的无效值 参数名称:发生值
【问题讨论】:
-
我不认为 ViewCell 在标题中是必需的
-
正确。这就是这个例外的原因。我犯了一个愚蠢的错误。
标签: listview xamarin exception xamarin.forms