在第一个 ItemsControl 中突出显示在第二个 ItemsControl 中选择相同项目的项目,并在文本框中显示所选项目
Highlight item in 1st ItemsControl on selection of same item inside 2nd ItemsControl and also show that selected item in a textbox
我在主 window class 中有一个字符串列表,两个 ItemsControl 绑定到同一个列表和 SelectedItem 依赖项 属性。
我在第二个 ItemsControl 和 Button Click 事件中使用了 Button itemtemplate,我能够获取所选按钮的值,然后将其传递给 SelectedItem 属性 和 SelectedItem 属性绑定到文本框。
我现在想做的是在 1st ItemsContol 中也突出显示相同的项目,并且还想要向后选择。
注意:只需要使用纯ItemsControl。不允许使用其他控件,如 ListBox 等。我还被要求对我不理解的 SelectedItem 使用 ItemsControl class 后代。
谢谢。
由于您指的是 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>
我在主 window class 中有一个字符串列表,两个 ItemsControl 绑定到同一个列表和 SelectedItem 依赖项 属性。
我在第二个 ItemsControl 和 Button Click 事件中使用了 Button itemtemplate,我能够获取所选按钮的值,然后将其传递给 SelectedItem 属性 和 SelectedItem 属性绑定到文本框。
我现在想做的是在 1st ItemsContol 中也突出显示相同的项目,并且还想要向后选择。
注意:只需要使用纯ItemsControl。不允许使用其他控件,如 ListBox 等。我还被要求对我不理解的 SelectedItem 使用 ItemsControl class 后代。
谢谢。
由于您指的是 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>