1

ビューソース、リストビュー、およびリストビューで選択されたアイテムのビューモデルで ICommand を実行するためのボタンを含む WPF モデルがあります。

<Window.Resources>
    <CollectionViewSource x:Key="teachingSessionsViewSource" d:DesignSource="{d:DesignInstance {x:Type local:TeachingSessionListItem}, CreateList=True}"/>
</Window.Resources>
...
    <GroupBox Header="All Sessions" 
              DataContext="{Binding Source={StaticResource teachingSessionsViewSource}}">
        <StackPanel>
            <ListView x:Name="TeachingSessionList" 
                      ItemsSource="{Binding}"
                      SelectedItem="{Binding Path=/}">
                <ListView.View>
                    <GridView ColumnHeaderContainerStyle="{StaticResource noHeaderStyle}">
                        <GridViewColumn DisplayMemberBinding="{Binding SessionDate}"/>
                        <GridViewColumn DisplayMemberBinding="{Binding PresenterInitials}" Width="30" />
                    </GridView>
                </ListView.View>
            </ListView>
            <Button Content="Un-Assign" Margin="5,5" Command="{Binding Path=/UnAssignPresentation}" 
        </StackPanel>
    </GroupBox>

問題は、リストビューでどの項目が選択されているかに関係なく、ICommand UnAssignPresentation が常にリストの最初の項目で実行されることです。つまり、CollectionViewSource の currentItem プロパティは ListView にバインドされていないようです。

私は何を間違っていますか?どうもありがとうございました。

4

1 に答える 1

2

IsSynchronizedWithCurrentItem="True"ListViewに追加してみてください。

また、リストビューをリソースではなくビューモデルのコレクションにバインドすることをお勧めします。
次に、選択したアイテムのビューモデルにプロパティを追加し
、リストビューで選択したアイテムをビューモデルのそのプロパティに
バインドし、ボタンのコマンドを現在のアイテムに作用するビューモデルのコマンドにバインドするか
、選択したアイテムにバインドされたコマンドパラメータを介して操作するアイテム。

于 2013-02-07T20:09:11.217 に答える