在项目控制中设置对新项目的关注
Posted
技术标签:
【中文标题】在项目控制中设置对新项目的关注【英文标题】:Setting Focus on new Items in Items Control 【发布时间】:2010-10-20 15:54:47 【问题描述】:我有一个 ListBox,它通过数据绑定将新项目添加到其中(即,列表中添加了一些内容,并且框正在更新以包含新项目)。
列表框中的项目是可编辑的数据模板,所以问题是:添加新项目时如何将焦点设置到模板中的第一个字段?
我查看了this question 并打算看看它是否能让我有所收获,但这并不是对我问题的直接回应。
【问题讨论】:
【参考方案1】:您链接到的问题应该适用于您的特定情况。只要您使用 ObservableCollection 作为源,您就可以设置:
<ListBox IsSynchronizedWithCurrentItem="True" ItemsSource="Binding MyCollection" ItemTemplate="StaticResource MyTemplate/>
这将确保在添加项目时将焦点赋予新项目,然后焦点管理器(查看该线程中的第一个响应)应将焦点赋予文本框。 MSDN 文章提供了一个有用的示例,在此处放入模板:
<DataTemplate x:Key="MyTemplate" DataType="x:Type Classes:MyClass">
<StackPanel FocusManager.FocusedElement="Binding ElementName=firstButton">
<Button Name="firstButton" />
</StackPanel>
</DataTemplate>
【讨论】:
由于数据模板中存在 UserControl 需要处理焦点事件并将其传递给我想要的实际文本框,我的问题实际上变得更加复杂,但这里的设置让我很远足以弄清楚,谢谢。 你可能会发布你的代码,以防其他人来寻找类似的东西。以上是关于在项目控制中设置对新项目的关注的主要内容,如果未能解决你的问题,请参考以下文章