I have following GridView
<GridView
x:Name="gird_view"
Grid.Column="1"
ItemsSource="{x:Bind workers}"
ContainerContentChanging="gird_view_ContainerContentChanging">
<GridView.ItemContainerStyle>
<Style TargetType="GridViewItem">
<Setter Property="Margin" Value="10"/>
</Style>
</GridView.ItemContainerStyle>
<GridView.ItemTemplate>
<DataTemplate x:DataType="models:Worker">
<local:WorkerControl ViewModel="{x:Bind}"/>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
I am trying following code
private async void gird_view_ContainerContentChanging(ListViewBase sender, ContainerContentChangingEventArgs args)
{
GridViewItem item = args.ItemContainer as GridViewItem;
await Task.Delay(5000);
var _Container = gird_view.ContainerFromItem(item);
if (_Container == null)
{
return;
}
}
_Container
is always coming as null with or without delay. Any idea why that might be?
GridViewItem
is the container:
GridViewItem item = args.ItemContainer as GridViewItem;
To get the data object for that container, i.e. your Worker
object, you should use the Item
property:
Worker worker = args.Item as Worker;
There should be no need to use the ContainerFromItem
in this case.