<syncfusion:SfListView.DataSource>
<data:DataSource LiveDataUpdateMode="AllowDataShaping">
<data:DataSource.GroupDescriptors>
<data:GroupDescriptor PropertyName="Year" />
</data:DataSource.GroupDescriptors>
</data:DataSource>
</syncfusion:SfListView.DataSource> |
<sync:SfListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="30" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Label Text="▸">
<Label.Triggers>
<DataTrigger TargetType="Label" Binding="{Binding IsExpand}" Value="True">
<Setter Property="Text" Value="▾" />
</DataTrigger>
</Label.Triggers>
</Label>
<Grid Grid.Column="1">
<Label Text="{Binding Key}" />
<Label Text="●" TextColor="Red" IsVisible="{Binding .,Converter={StaticResource imageSourceConverter}}" />
</Grid>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</sync:SfListView.GroupHeaderTemplate> |
private void StartThread()
{
Device.StartTimer(TimeSpan.FromSeconds(3), () =>
{
Task.Factory.StartNew(() =>
{
Sensors.Where(x => x.Description == "Dining Room").FirstOrDefault().IsOpenOrOn =
!Sensors.Where(x => x.Description == "Dining Room").FirstOrDefault().IsOpenOrOn;
});
Device.BeginInvokeOnMainThread(() =>
{
var items = gridResults.DataSource.DisplayItems;
foreach (var item in items)
{
if(item is GroupResult)
{
var group = item as GroupResult;
if((string)group.Key == "Window")
{
var index = gridResults.DataSource.DisplayItems.IndexOf(group);
gridResults.RefreshListViewItem(index, index, true);
}
}
}
});
return true;
});
} |