0

我想允许用户建立一个固定长度的动作序列。为此,我有两个列表视图:
- 数字 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,它不会更改所选项目本身,而是会影响选择。

4

2 回答 2

0

如果两个ListViews 都具有相同的类型,为什么不尝试对两个s 使用相同的属性ListView。?

ListItem如果找到,这将选择相同的 。

希望这可以解决您的问题。

于 2013-06-10T16:11:13.730 回答
0

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

<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"/>

检查这个(http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.selector.issynchronizedwithcurrentitem.aspx

于 2013-06-10T06:55:34.793 回答