在Listbox DataTemplate中选中用户控件

时间:2012-10-23 07:47:31

标签: wpf user-controls focus

我在ListBox中有一个用户控件,当我使用tab键进行聚焦时,我想把焦点放在我的Control中的TextBox而不是Custom Control上。我该怎么办?

我简化了代码,因为在我的控制中我有其他UI元素。

用户控制代码:

<Grid>
    <TextBox Name="txtFreeTextDescription" Style="{StaticResource TextBoxStyleLargeDynamic}" Text="{Binding Description, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}" />
</Grid>

ListBox代码:

<ListBox Name="lsbItems" DataContext="{Binding}" KeyboardNavigation.TabNavigation="Local">
      <ListBox.ItemTemplate>
         <DataTemplate>
             <local:SectionDynamicItem x:Name="ucSectionDynamicItem" Description="{Binding SectionItem.Description}"  />
          </DataTemplate>
       </ListBox.ItemTemplate>
</ListBox>

2 个答案:

答案 0 :(得分:2)

这对我有用....

   <ListBox ItemsSource="{Binding EmployeeList}"
            KeyboardNavigation.TabNavigation="Continue">
        <ItemsControl.ItemContainerStyle>
            <Style TargetType="ListBoxItem">
                <Setter Property="Focusable" Value="False"/>
            </Style>
        </ItemsControl.ItemContainerStyle>
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <StackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Grid Margin="5" Focusable="False">
                    <TextBox Text="{Binding Name}"/>
                </Grid>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ListBox>

答案 1 :(得分:-1)