Wpf 如何通过从另一个ListView中选择来更改ListView中选定项的值?

Wpf 如何通过从另一个ListView中选择来更改ListView中选定项的值?,wpf,xaml,binding,two-way,Wpf,Xaml,Binding,Two Way,我想让用户建立一个固定长度的动作序列。为此,我有两个列表视图: -数字1显示所有可能的单步操作的分组列表 -数字2显示要编辑的操作序列 场景应如下所示: -用户在列表2中选择要更改的项目 -这将选择列表1中的相同项目 -现在,若用户选择列表1中的其他项目W,则列表2中的所选值应就地更改为W 我知道如何从代码中实现,但我正在尝试弄清楚是否可以在绑定上实现 我只尝试以双向模式绑定它们的SeletedItem属性,但这显然是不正确的,因为列表1和列表2之间应该存在一些不对称性 我想我需要参考Selec

我想让用户建立一个固定长度的动作序列。为此,我有两个列表视图:
-数字1显示所有可能的单步操作的分组列表
-数字2显示要编辑的操作序列

场景应如下所示:
-用户在列表2中选择要更改的项目
-这将选择列表1中的相同项目
-现在,若用户选择列表1中的其他项目W,则列表2中的所选值应就地更改为W

我知道如何从代码中实现,但我正在尝试弄清楚是否可以在绑定上实现

我只尝试以双向模式绑定它们的SeletedItem属性,但这显然是不正确的,因为列表1和列表2之间应该存在一些不对称性

我想我需要参考
SelectedValue
,但我没有得到,
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>

基础知识
卡介苗
CDE
EFG

选择列表中的任何项目时,其值将显示在
文本框中。如果您试图更改
文本框中的文本,我希望所选项目替换为新文本。但实际上,当我编辑
文本框中的文本时,它不会更改所选项目本身,而是会影响选择。

如果有两个
列表框
控件的ItemsSource属性设置为同一源。在两个列表框上将IsSynchronizedWithCurrentItem设置为true,以确保每个
列表框中的所选项目相同

<ListBox Name="employeeListBox1"
         ItemsSource="{Binding Source={StaticResource Employees}}"
         ItemTemplate="{StaticResource EmployeeItemTemplate}"
         IsSynchronizedWithCurrentItem="True"/>

<ListBox Name="employeeListBox2"
         ItemsSource="{Binding Source={StaticResource Employees}}"
         ItemTemplate="{StaticResource EmployeeItemTemplate}"
         IsSynchronizedWithCurrentItem="True"/>


用this()检查如果两个
列表视图的类型相同,为什么不尝试对两个
列表视图使用相同的属性呢

这将选择相同的
列表项
(如果找到)


希望这能解决您的问题。

不,这不是我想要达到的目的。问题是我需要为这些列表视图提供不同的行为。我添加了一个简化的示例,使用TextBox而不是List1。