我在 Windows Phone 7.1 中使用 MVVM Light Toolkit
ViewModel 的一部分:
public RelayCommand<object> ChangeVATCommand
{
get
{
return _changeVATCommand
?? (_changeVATCommand = new RelayCommand<object>(
(vat) =>
{
}));
}
}
Xaml 的一部分:
<toolkit:ListPicker ItemsSource="{Binding VATs}" x:Name="VATs" SelectedIndex="0" DisplayMemberPath="Name">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<cmd:EventToCommand Command="{Binding ChangeVATCommand, Mode=OneWay}"
CommandParameter="{Binding Path=SelectedItem, ElementName=VATs}"
/>
</i:EventTrigger>
</i:Interaction.Triggers>
</toolkit:ListPicker>
当命令运行时,传递给 lambda 的增值税为空。如果我在 xaml CommandParameter 中将“{Binding ElementName=VATs}”设置为“{Binding ElementName=VATs}”,则 lambda 中的增值税具有具有正确属性 SelectedItem 对象(非空)的 ListPicker。
这是一个错误还是我做错了什么?
更新
概括:
CommandParameter="{Binding Path=SelectedItem, ElementName=VATs}" - 我有 NULL
CommandParameter="{Binding Path=SelectedIndex, ElementName=VATs}" - 工作正常!我有选定大桶的索引
- CommandParameter="{Binding ,ElementName=VATs}" - 工作正常!我有 ListPicker 和正确的选定项