Moh*_*eeq 3 listview exception xamarin xamarin.forms
我有一个非常简单的 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>
Run Code Online (Sandbox Code Playgroud)
这是我的 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; }
}
Run Code Online (Sandbox Code Playgroud)
例外
未处理的异常:
System.ArgumentException:值是 HeaderTemplate 参数名称的无效值:发生值
ListView.HeaderTemplate.DataTemplate不需要ViewCell财产。ListView.HeaderTemplate如下更改将解决此问题。
<ListView.HeaderTemplate>
<DataTemplate>
<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>
</DataTemplate>
</ListView.HeaderTemplate>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
684 次 |
| 最近记录: |