UWP中的ListView容器
本文关键字:容器 ListView 中的 UWP | 更新日期: 2023-09-27 18:15:12
我试图获得当前选定的ListView项目的容器。ContainerFromItem总是返回null,编译器会抱怨这个函数可能已经过时了。
任何想法?
ContainerFromItem总是返回null。
ItemsControl。ContainerFromItem方法可以获取指定项的容器。例如,我们可以从ListView
中选定的项获取ListViewItem容器。如果你得到null,可能项目没有容器存在,或者你的代码有问题。
我试图获得当前选择的ListView项目的容器。
下面是获取当前选择的ListViewItem
的容器的完整演示。XAML代码:
<ListView
Name="CListView"
Margin="10"
HorizontalAlignment="Center"
ItemsSource="{x:Bind categories}"
SelectionChanged="CListView_SelectionChanged">
<ListView.ItemTemplate>
<DataTemplate x:DataType="local:Category">
<StackPanel
Background="{x:Bind backgroundcolor}"
Orientation="Horizontal">
<TextBlock
FontSize="17"
FontWeight="Bold"
Text="{x:Bind Name}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
背后的代码 ObservableCollection<Category> categories = new ObservableCollection<Category> { };
public ListViewContainer()
{
this.InitializeComponent();
categories = new ObservableCollection<Category>
{
new Category {Name="name1",details="color1" ,backgroundcolor="#D90015"},
new Category {Name="name2",details="color2" ,backgroundcolor="#DC1C17"},
new Category {Name="name3",details="cplor3",backgroundcolor="#DE3A17" },
new Category {Name="name3",details="color4",backgroundcolor="#E25819" }
};
}
private void CListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var container = CListView.ContainerFromItem(CListView.SelectedItem);
ListViewItem item = container as ListViewItem;
System.Diagnostics.Debug.WriteLine(item.ActualHeight);
}