且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

当子 TextBox 聚焦时设置 ListBoxItem.IsSelected

更新时间:2022-03-18 03:25:02

有一个只读属性 IsKeyboardFocusWithin,如果有任何孩子获得焦点,则该属性将设置为 true.您可以使用它在触发器中设置 ListBoxItem.IsSelected:

There is a read-only property IsKeyboardFocusWithin that will be set to true if any child is focused. You can use this to set ListBoxItem.IsSelected in a Trigger:

<ListBox ItemsSource="{Binding SomeCollection}" HorizontalAlignment="Left">
    <ListBox.ItemContainerStyle>
        <Style TargetType="{x:Type ListBoxItem}">
            <Style.Triggers>
                <Trigger Property="IsKeyboardFocusWithin" Value="True">
                    <Setter Property="IsSelected" Value="True" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBox Width="100" Margin="5" Text="{Binding Name}"/>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>