数据模板中的列表框
<ListBox
ItemsSource="{Binding Path=(Duties:IPicker.Choices)}"
SelectedValue="{Binding Path=(Duties:IPicker.Selection),
ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged,
NotifyOnValidationError=True}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel MaxWidth="{DynamicResource ListWidth}" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
SelectedValue 绑定完全有效只有当用户控件加载时不移动焦点
当我导航回控件(使用 Prism 导航)时,我想关注用户控件中的第一个元素,这恰好是列表框。
但是当我添加以下行时,每次我向后导航时,选择都会重置为第一个项目,显示为蓝色突出显示 - 选择不会停留在先前选择的项目上。
Loaded += (sender, e) =>
control.MoveFocus(new TraversalRequest(FocusNavigationDirection.First));
没有这条线一切正常,除了列表框没有键盘焦点(先前选择的列表框项目的灰色突出显示而不是蓝色突出显示)。
此外,只有当我在向前导航之前关注另一个列表框时才会出现问题,即有两个 lisbox,如果我在向前导航之前停留在第一个列表框上,那么即使使用 movefocus,也会保留正确的选择?