gpt4 book ai didi

c# - xaml UWP 将焦点/选择设置为第一个 ListView 项

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:49 25 4
gpt4 key购买 nike

 <ListView x:Name="listview" ScrollViewer.HorizontalScrollBarVisibility="Visible"  ScrollViewer.ZoomMode="Enabled"
ItemsSource="{Binding YourCollection}" DoubleTapped="listview_DoubleTapped" Tapped="listview_Tapped" SelectionChanged="listview_SelectionChanged"
GotFocus ="StackPanel_GotFocus" IsItemClickEnabled="True" ItemClick="ListView_ItemClick"
Margin="162,539,-103,11" Style="{StaticResource ListViewStyle1}" ScrollViewer.VerticalScrollBarVisibility="Disabled" Grid.RowSpan="2">

<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" Height="130" />
</ItemsPanelTemplate>
</ListView.ItemsPanel>

<ListView.ItemTemplate >
<DataTemplate>
<StackPanel Orientation="Vertical" Height="130" Width="192" >
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Image}" Height="108" Width="192" HorizontalAlignment="Center" VerticalAlignment="Center" />
</StackPanel>
<StackPanel Orientation="Vertical" >
<TextBlock Text="{Binding Name}" TextAlignment="Center" Height="22" Width="192" Foreground="White" FontFamily="Assets/GothamLight.ttf#GothamLight"/>
</StackPanel>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

需要将焦点或选择设置到 ListView 项的第一项。 ListView 包含一个项目数组,其中焦点需要在开始时定位到第一个项目,然后保留最后选择的项目。

最佳答案

这里有多个选项,具体取决于您的编码风格。看起来您正在使用我们的事件处理程序的隐藏代码并绑定(bind)到具有 YourCollection 属性的 View 模型类,因此我将为您提供这两个示例。 :)

使用代码隐藏

更新您的 XAML 文件以处理 Loaded 事件并命名您的 ListView:

<Page Loaded="Page_Loaded">
...
<ListView Name="MyListView" ItemsSource="{Binding YourCollection}">
...
</ListView>

然后将以下代码添加到您的 Page_Loaded 处理程序中:

private void Page_Loaded(object sender, RoutedEventArgs e)
{
if (MyListView.Items.Count > 0)
MyListView.SelectedIndex = 0;
}

使用 View 模型

在您的 View 模型中提供一个 SelectedItem 属性(无论您在何处定义 YourCollection):

private YourItem_selectedItem = null;
public Dumb SelectedItem
{
get { return _selectedItem; }
set { SetProperty<YourItem>(ref _selectedItem, value); }
}

然后将您的 ListView 绑定(bind)到所选项目,就像您对 ItemsSource 所做的那样:

<ListView Name="MyListView" ItemsSource="{Binding YourCollection}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">

最后,在加载集合项后设置 SelectedItem。

此方法还具有替换 SelectionChanged 和 ItemClick 事件的好处。您不需要它们,因为在这些情况下控件默认更改 SelectedItem。

关于c# - xaml UWP 将焦点/选择设置为第一个 ListView 项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43176823/

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