将 Observable 集合绑定到 ListView
Bind Observable collection to ListView
使用 Xamarin 和 Visual Studio 2017,我在调试时收到一条摘要 The application is in break mode
消息。
当使用 try-catch
时,没有捕获到任何东西。
我已经调试过返回的TimeLog集合不为空。
from
&to
由 DateTime
值给出。
TimeLogs 是与 ItemsSource
一起应用于 ListView
的可观察集合。
private ObservableCollection<ExtendedTimeLog> TimeLogs;
在代码隐藏文件的构造函数中:
TimeLogs = new ObservableCollection<ExtendedTimeLog>();
TimeLogView.ItemsSource = TimeLogs;
收集非空日志后,进程崩溃。
private async Task RefreshTimeLogs(long from, long to)
{
TimeLogs.Clear();
var logs = await DB.GetExtendedTimeLogs(from, to);
foreach (var element in logs)
TimeLogs.Add(element);
}
刷新方法由日期选择器{To,From}_DateSelected 方法调用。
<DatePicker x:Name="datepickerFrom" Grid.Row="0" DateSelected="datepickerFrom_DateSelected"></DatePicker>
XAML:
<ListView x:Name="TimeLogView" Grid.Row="2">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<TextCell Text="{Binding From}" />
<TextCell Text="{Binding To}" />
<TextCell Text="{Binding Note}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果集合为空(在 for 循环中)且可观察集合未更改,则不会发生应用程序崩溃。
必须修改什么?
对我来说,效果很好。
3 个 TextCell
条目被替换为 Label
。
使用 Xamarin 和 Visual Studio 2017,我在调试时收到一条摘要 The application is in break mode
消息。
当使用 try-catch
时,没有捕获到任何东西。
我已经调试过返回的TimeLog集合不为空。
from
&to
由 DateTime
值给出。
TimeLogs 是与 ItemsSource
一起应用于 ListView
的可观察集合。
private ObservableCollection<ExtendedTimeLog> TimeLogs;
在代码隐藏文件的构造函数中:
TimeLogs = new ObservableCollection<ExtendedTimeLog>();
TimeLogView.ItemsSource = TimeLogs;
收集非空日志后,进程崩溃。
private async Task RefreshTimeLogs(long from, long to)
{
TimeLogs.Clear();
var logs = await DB.GetExtendedTimeLogs(from, to);
foreach (var element in logs)
TimeLogs.Add(element);
}
刷新方法由日期选择器{To,From}_DateSelected 方法调用。
<DatePicker x:Name="datepickerFrom" Grid.Row="0" DateSelected="datepickerFrom_DateSelected"></DatePicker>
XAML:
<ListView x:Name="TimeLogView" Grid.Row="2">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<TextCell Text="{Binding From}" />
<TextCell Text="{Binding To}" />
<TextCell Text="{Binding Note}" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
如果集合为空(在 for 循环中)且可观察集合未更改,则不会发生应用程序崩溃。
必须修改什么?
对我来说,效果很好。
3 个 TextCell
条目被替换为 Label
。