Windows runtime 传递了错误的参数

Windows runtime 传递了错误的参数,windows-runtime,windows-phone-8.1,winrt-xaml,Windows Runtime,Windows Phone 8.1,Winrt Xaml,我有一个列表控件和一个视图模型。如果触发了点击事件,我会尝试将selectedItems传递给视图模型 我可以编译以下代码: 视图: 我做错了什么 谢谢你的帮助 您可以编写一个转换器并对SelectionChanged事件做出反应(或者在此时点击,但由于SelectedItems是您想要的,您可能需要考虑一下) 所以你可以这样设置: <interactivity:Interaction.Behaviors> <core:EventTriggerBehavior Even

我有一个列表控件和一个视图模型。如果触发了点击事件,我会尝试将selectedItems传递给视图模型

我可以编译以下代码:

视图:

我做错了什么


谢谢你的帮助

您可以编写一个转换器并对SelectionChanged事件做出反应(或者在此时点击,但由于SelectedItems是您想要的,您可能需要考虑一下)

所以你可以这样设置:

<interactivity:Interaction.Behaviors>
    <core:EventTriggerBehavior EventName="SelectionChanged">
        <core:InvokeCommandAction Command="{Binding SelectionChangedCommand}"
                                  InputConverterParameter="{Binding ElementName=MedicineList}"
                                  InputConverter="{StaticResource SelectionChangedConverter}"/>
    </core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
当然,转换器需要定义为某个地方的静态资源:

<local:SelectionChangedConverter x:Key="SelectionChangedConverter" />

我刚刚注意到,这会给我一个com对象,不会出现在我的命令中。如果我对它进行解析,它将为null。
System.InvalidCastException: Unable to cast object of type 'Windows.UI.Xaml.Input.TappedRoutedEventArgs' to type 'System.Collections.IList'
<interactivity:Interaction.Behaviors>
    <core:EventTriggerBehavior EventName="SelectionChanged">
        <core:InvokeCommandAction Command="{Binding SelectionChangedCommand}"
                                  InputConverterParameter="{Binding ElementName=MedicineList}"
                                  InputConverter="{StaticResource SelectionChangedConverter}"/>
    </core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>
public class SelectionChangedConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var listView = parameter as ListView;

        return listView.SelectedItems;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        throw new NotImplementedException();
    }
}
<local:SelectionChangedConverter x:Key="SelectionChangedConverter" />