关注列表框中的第一个元素

本文关键字:第一个 元素 列表 | 更新日期: 2023-09-27 18:05:26

我面临以下问题。当我从具有键盘焦点的列表框中删除第一个元素时(通过刷新项目源),键盘焦点将移动到父窗口。我希望将键盘焦点保留在第一个列表框项上。所以我写了下面的代码

<Grid.Resources>
<Style TargetType="{x:Type ListBox}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding FirstRowDeleted}" Value="True">
            <Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=MyListBox}" />
        </DataTrigger>
    </Style.Triggers>
</Style>

使用这段代码,我可以将焦点移动到列表框本身。如何将焦点移动到第一个列表框项?MyListBox[0]似乎不起作用。有什么建议吗?

感谢你Kaddy

关注列表框中的第一个元素

我在这里找到了答案:如何在已经有焦点的WPF列表框中以编程方式将焦点设置为SelectedItem ?

var listBoxItem = (ListBoxItem) MainListBox
    .ItemContainerGenerator
    .ContainerFromItem(MainListBox.SelectedItem);
listBoxItem.Focus();

谢谢@Jeff的回答。

这段代码在页面加载时对第一个输入文本应用focus函数。Try it out

$(document).ready(function () {
                $("#input:text:visible:first").focus();

            });