C# UWP VisualTreeHelper.GetParent()返回null

C# UWP VisualTreeHelper.GetParent()返回null,c#,xaml,uwp,C#,Xaml,Uwp,我有一个内容对话框,它有一个列表视图。此列表视图的数据模板包含一个网格,此网格有一个按钮。代码如下所示: <ContentDialog x:Name="DownloadListDialog" x:FieldModifier="public" Grid.Column="1"> <ListView Name="AssetsListView" IsItemClickEnabled="False" Grid.Row="1" SelectionMode="Single" MaxH

我有一个
内容对话框
,它有一个
列表视图
。此
列表视图的
数据模板包含一个
网格
,此
网格
有一个
按钮
。代码如下所示:

<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>
问题是变量
VisualTreeHelper.GetParent(发送者为按钮)作为网格
在我的电脑上总是返回
null
。但是当我在手机上部署时,同样的代码工作得非常好(即,变量
Grid
被分配了正确的值)

更新: 这是我的实时可视化树,它确认按钮有一个父网格。

应用程序最小版本:构建14393 应用程序目标版本:Build 15063 PC windows版本:版本17134(版本1803)


注意:我已尝试将应用程序目标版本更改为1803,但问题仍然存在。

我从另一个问题中了解到,有几种方法可以获取VisualTreeHelper的父级。可能是在你的手机或PC上,在后台加载了不同的东西,这样你可以找到网格对象的位置就会改变


您可以检查这个答案作为我上面所说的参考:

您想要一个解决方法还是知道它为什么为空?解决办法是可行的,答案更难正确的答案会更好。但我还想补充一点,前一阵子同样的代码工作得很好。奇怪——我试过你的代码,似乎工作得很好。您是否可以检查
var obj=visualtreeheloper.GetParent(发送者作为按钮)返回任何内容?使用可用的工具。转到调试/Windows/Live可视化树并验证它@返回null.Nope的Romasz。甚至
sender as Button
的父属性也是空的。我可以看到许多人在从VisualTreeHelper获取正确控件时遇到问题。我无法在此处测试您的问题,但您是否尝试使用“LogicalTreeHelper.GetParent()”?此外,我还发现了一个资源,可以为您提供更多的见解:
private async void Button_Click(object sender, RoutedEventArgs e)
{
    var grid = VisualTreeHelper.GetParent(sender as Button) as Grid;
    ...
    ...
}