gpt4 book ai didi

c# - UWP VisualTreeHelper.GetParent() 返回 null

转载 作者:可可西里 更新时间:2023-11-01 08:28:29 26 4
gpt4 key购买 nike

我有一个 ContentDialog,它有一个 ListView。此 ListView 的 DataTemplate 包含一个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>

这是我的 Button 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 在我的 PC 上总是返回 null。但是当我在我的手机上部署时,同样的代码工作得很好(即,变量 grid 被分配了正确的值)。

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

应用最低版本:build 14393应用目标版本:Build 15063PC windows版本:Build 17134(版本1803)

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

最佳答案

正如我从另一个问题中了解到的,有几种方法可以获取 VisualTreeHelper 的父级。可能是因为在您的移动设备或 PC 上,在后台加载了不同的东西,以便您可以找到网格对象的位置发生变化。

您可以查看此答案作为我上述内容的引用:FrameworkElement.Parent and VisualtreeHelper.GetParent behaves differently

关于c# - UWP VisualTreeHelper.GetParent() 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50507068/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com