0

ユーザーが固定長のアクション シーケンスを作成できるようにしたいと考えています。そのために、2 つのリスト ビューがあり ます

シナリオは次のようになります:
- ユーザーが変更したいリスト 2 の項目を
選択 - リスト 1 で同じ項目を選択
- ユーザーがリスト 1 で他の項目 W を選択すると、リスト 2 で選択された値が含まれている必要があります。場所をWに変更

コードからそれを行う方法は知っていますが、バインディングで作成できるかどうかを理解しようとしています。

TwoWay モードで SeletedItem プロパティのみをバインドしようとしましたが、リスト 1 とリスト 2 の間に非対称性があるはずなので、明らかに正しくありません。

を参照する必要があると思いますが、アイテムと値が同じ場合、 と私の場合のSelectedValue違いは何ですか。SelectedItemSelectedValue

更新 問題のサンプルコードは次のとおりです。

<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。のテキストを変更しようとするとTextBox、選択した項目を新しいテキストに置き換えてほしい。しかし、実際には、選択したアイテム自体を変更するのではなく、 でテキストを編集するとTextBox、選択に影響します。

4

2 に答える 2

0

ItemsSource プロパティが同じソースに設定された2 つのListBoxコントロールがある場合。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 に答える
0

両方の s が同じ型である場合は、両方のs に同じPropertyListView使用してみませんか?ListView

見つかった場合、これは同じを選択しますListItem

これで問題が解決することを願っています。

于 2013-06-10T16:11:13.730 に答える