首页 > 解决方案 > 在第 2 个 ItemsControl 中选择相同项目时突出显示第 1 个 ItemsControl 中的项目,并在文本框中显示该选定项目

问题描述

我在主窗口类中有一个字符串列表,两个 ItemsControl 绑定到同一个列表和 SelectedItem 依赖属性。

我做了什么,我将 Button itemtemplate 用于第二个 ItemsControl,并且在 Button Click 事件中,我能够获取所选按钮的值,然后将其传递给 SelectedItem 属性,并将 SelectedItem 属性绑定到文本框。

我现在要做的是在第一个 ItemsContol 中突出显示相同的项目,并且还想要向后选择。

注意:只需要使用纯 ItemsControl。不允许使用 ListBox 等其他控件。我也被要求对我不理解的 SelectedItem 使用 ItemsControl 类后代。

谢谢。

标签: c#wpfselectionitemscontrol

解决方案


由于您指的是SelectedItem我假设您使用的是Selector派生控件,而不是纯ItemsControl.

在这种情况下,一个简单的解决方案是在两个控件上都设置Selector.IsSynchronizedWithCurrentItem为并将 绑定到任一属性(或绑定到 的公共绑定源属性):TrueTextBoxSelectedItemSelectedItem

<StackPanel>
  <TextBox Text="{Binding ElementName=ListBox, Path=SelectedItem}" />
  <ListBox x:Name="ListBox" 
           IsSynchronizedWithCurrentItem="True" />
  <ListBox IsSynchronizedWithCurrentItem="True" />
</StackPanel>

推荐阅读