设置焦点在项目控件中的新项目

Ste*_*ham 5 data-binding wpf listbox

我有一个ListBox,它通过Databinding将新项目添加到其中(即某些内容已添加到列表中,并且该框正在更新以包含新项目).

列表框中的项目是可编辑的数据模板,因此问题是:在添加新项目时,如何将焦点设置为模板中的第一个字段?

我已经看过这个问题了,我会看看它是否能让我随处可见,但这并不能直接回应我的问题.

Jef*_*ain 7

您链接的问题应该适用于您的特定情况.只要您为源使用ObservableCollection,就可以设置:

<ListBox IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding MyCollection}" ItemTemplate="{StaticResource MyTemplate}/>
Run Code Online (Sandbox Code Playgroud)

这将确保在添加项目时,将焦点放在新项目上,然后焦点管理器(查看该线程中的第一个响应)应该将焦点放在TextBox上.MSDN文章提供了一个有用的示例,在此处放入模板:

<DataTemplate x:Key="MyTemplate" DataType="{x:Type Classes:MyClass}">    
  <StackPanel FocusManager.FocusedElement="{Binding ElementName=firstButton}">
    <Button Name="firstButton" />
  </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

  • 您可以发布您的代码,以防其他人来寻找类似的东西. (4认同)