我想允许用户建立一个固定长度的动作序列。为此,我有两个列表视图:
- 数字 1 显示所有可能的单步操作的分组列表
- 数字 2 显示要编辑的操作序列
场景应该是这样的:
- 用户在列表 2 中选择了一个他想要更改
的项目 - 这在列表 1 中选择了相同的项目
- 现在如果用户在列表 1 中选择其他项目 W,则列表 2 中的选定值应该在 -地点改为W
我知道,如何从代码中做到这一点,但试图弄清楚是否可以进行绑定。
我尝试只在 TwoWay 模式下绑定它们的 SeletedItem 属性,但这显然是不正确的,因为列表 1 和列表 2 之间应该存在一些不对称性。
我想我需要参考SelectedValue
,但我没有得到,在我的情况下,当 item 和 value 相同时,和SelectedItem
之间有什么区别。SelectedValue
更新 这是该问题的示例代码:
<Window x:Class="WpfApplication.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:system="clr-namespace:System;assembly=mscorlib"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<x:Array x:Key="Strings" Type="system:String">
<system:String>ABC</system:String>
<system:String>BCD</system:String>
<system:String>CDE</system:String>
<system:String>EFG</system:String>
</x:Array>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBox x:Name="SearchBox"/>
<ListView
Grid.Row="1"
ItemsSource="{StaticResource Strings}"
SelectedItem="{Binding Text, ElementName=SearchBox, Mode=TwoWay}"
/>
</Grid>
</Window>
当您选择列表中的任何项目时,其值会显示在TextBox
. 如果您尝试更改 a 中的文本TextBox
,我希望将所选项目替换为新文本。但实际上,当我在 a 中编辑文本时TextBox
,它不会更改所选项目本身,而是会影响选择。