【问题标题】:Highlight item in 1st ItemsControl on selection of same item inside 2nd ItemsControl and also show that selected item in a textbox [closed]在第 2 个 ItemsControl 中选择同一项目时突出显示第 1 个 ItemsControl 中的项目,并在文本框中显示该选定项目 [关闭]
【发布时间】:2020-11-20 10:32:55
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 使用两个 ListBox 并将一个的 SelectedItem 属性绑定到另一个的。
  • @Clemens 我不允许使用任何其他控件,然后 ItemsControl 就是问题所在。

标签: c# wpf selection itemscontrol


【解决方案1】:

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

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

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

【讨论】:

  • 不,我必须以纯 ItemsControl 的方式进行。我被要求使用一些我不理解的 ItemsControl 类后代。
  • "ItemsControl class descendant" 可能表示从 ItemsControl 派生的类,例如列表框。
猜你喜欢
  • 2012-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 2011-09-14
相关资源
最近更新 更多