1

次のXAMLを確認してください

<toolkit:ListPicker x:Name="MyListPicker" SelectionMode="Single" SelectedItem="{Binding sign,Mode=TwoWay}" Background="Wheat" ItemsSource="{Binding DataContext.Signs, ElementName=xx}" Width="40" Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Grid.ColumnSpan="1">
                            <i:Interaction.Triggers>                                  
                                <i:EventTrigger EventName="SelectionChanged">
                                    <cmd:EventToCommand CommandParameter="{Binding SelectedItem,ElementName=MyListPicker}" Command="{Binding DataContext.generate, ElementName=xx}"/>
                                </i:EventTrigger>                                   
                            </i:Interaction.Triggers>

このListPickerの選択を変更すると、このイベントは、Generate Methodを呼び出す生成コマンドを呼び出します。このコマンドでは、CommandParameterを介してビューモデルに既に渡したSelectedItemを使用しますが、メソッドのSelectedItemの値は残ります。同じように、もう一度実行すると、最後に選択された値ではなく前の値に変更されます。SelectedItemへのバインドは、SelectionChangedの実行後に発生し、メソッドは前の値で実行されます。アイデア/回避策?

4

1 に答える 1

0

考えられる回避策は、「SelectedItem」の代わりに「SelectedIndex」を使用し、このインデックスでリストから要素を取得しようとすることです...動作します。が変更されると、正しいインデックスが得られます。

于 2012-12-10T12:14:13.293 に答える