UWP VisualTreeHelper.GetParent() возвращает null

У меня есть ContentDialog который имеет ListView. Этот DataTemplate ListView's содержит Grid и эта Grid имеет Button. Код выглядит следующим образом:

<ContentDialog x:Name="DownloadListDialog" x:FieldModifier="public" Grid.Column="1">
    <ListView Name="AssetsListView" IsItemClickEnabled="False" Grid.Row="1" SelectionMode="Single" MaxHeight="500" ItemsSource="{x:Bind _viewModel.Assets, Mode=OneWay}">
        <ListView.ItemContainerStyle>
            <Style TargetType="ListViewItem">
                       ...
                       ...
                    </Style>
        </ListView.ItemContainerStyle>
        <ListView.ItemTemplate>
            <DataTemplate x:DataType="viewModel:AssetViewModel">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="*"/>
                        <ColumnDefinition Width="Auto"/>
                    </Grid.ColumnDefinitions>
                    <StackPanel>
                        <TextBlock Text="{x:Bind name}"/>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{x:Bind lblFileSize}"/>
                            <TextBlock Text="{x:Bind contentSize, Mode=OneWay}"/>
                            <TextBlock Text="{x:Bind contentUrl}" Visibility="Collapsed"/>
                        </StackPanel>
                    </StackPanel>
                    <Button Content="Download" Click="Button_Click" HorizontalAlignment="Right" Grid.Column="1"/>
                </Grid>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>
</ContentDialog>

Здесь мой обработчик события Click Click:

private async void Button_Click(object sender, RoutedEventArgs e)
{
    var grid = VisualTreeHelper.GetParent(sender as Button) as Grid;
    ...
    ...
}

Проблема в том, что переменная VisualTreeHelper.GetParent(sender as Button) as Grid всегда возвращает null на моем ПК. Но этот же код при развертывании на моем мобильном устройстве отлично работает (т.е. Переменная grid получает правильное значение).

UPDATE: Здесь мое Live Visual Tree и оно подтверждает, что кнопка имеет родительскую сетку. Image

Версия приложения min: build 14393 Версия целевого приложения: Build 15063 Версия для ПК для ПК: Build 17134 (версия 1803)

Примечание. Я попытался изменить целевую версию приложения на 1803, но проблема остается.

Ответы

Ответ 1

Как я понимаю из другого вопроса, есть несколько способов получить родителя VisualTreeHelper. Может быть, на вашем мобильном устройстве или ПК, если это так, на заднем плане загружаются разные вещи, так что меняется местоположение объекта, где вы можете найти объект сетки.

Вы можете проверить этот ответ как ссылку на то, что я сказал выше: FrameworkElement.Parent и VisualtreeHelper.GetParent ведут себя по-другому