SelectionChanged事件发生在SelectedItem Binding之前

时间:2012-06-02 09:31:59

标签: windows-phone-7 mvvm silverlight-4.0 mvvm-light

检查以下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命令,该命令将调用Generate Method,其中我将使用SelectedItem,我已经通过CommandParameter传递给我的viewmodel,SelectedItem的值为on我的方法保持不变,当我再次执行时,它会更改为先前的值而不是最近选择的值,在我看来,在执行SelectionChanged之后,对SelectedItem的绑定发生,该方法使用前一个值执行,任何想法/解决方法?

1 个答案:

答案 0 :(得分:0)

也许一个可能的解决方法是使用“SelectedIndex”而不是“SelectedItem”然后尝试通过此索引从列表中获取元素...它可以工作。您可以在更改时获得正确的索引。