MvvmCross Windows Phone 8.1将列表选择绑定到命令,编译失败

MvvmCross Windows Phone 8.1将列表选择绑定到命令,编译失败,windows,xaml,windows-runtime,mvvmcross,Windows,Xaml,Windows Runtime,Mvvmcross,我发现以下错误: 无法将Windows.UI.Xml.Controls.ListView类型的对象转换为System.Windows.DependencyObject类型 由于以下代码: <ListView Grid.Row="1" ItemsSource="{Binding Cases}" IsItemClickEnabled="False" SelectionMode="Single"> <ListView.ItemTemplate> <Data

我发现以下错误:

无法将Windows.UI.Xml.Controls.ListView类型的对象转换为System.Windows.DependencyObject类型

由于以下代码:

<ListView Grid.Row="1" ItemsSource="{Binding Cases}" IsItemClickEnabled="False" SelectionMode="Single">
    <ListView.ItemTemplate>
    <DataTemplate>
        <Grid>
                <TextBlock Text="{Binding Subject}" HorizontalAlignment="Left"></TextBlock>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="SelectionChanged">
            <i:InvokeCommandAction Command="{Binding ShowCaseCommand, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</ListView>
我通过从
C:\ProgramFiles(x86)\Microsoft SDK\Expression\Blend\.NETFramework\v4.5\Libraries\System.Windows.Interactivity.dll
手动添加引用,向项目添加了交互

当然,删除
块可以消除错误,但我需要将选择绑定到命令,就像我在UIKit和Android中所做的那样


那么–这是一种什么样的恶意行为?

问题在于此代码与Windows Phone 8.1不兼容

列表视图需要如下设置:

<ListView Grid.Row="1" ItemsSource="{Binding Cases}"  IsItemClickEnabled="False" SelectionMode="Single">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Subject}" HorizontalAlignment="Left"></TextBlock>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
    <interactivity:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="SelectionChanged">
            <core:InvokeCommandAction Command="{Binding ShowCaseCommand, Mode=OneWay}" />
            </core:EventTriggerBehavior>
    </interactivity:Interaction.Behaviors>
</ListView>
这导致了另一个问题虽然它将绑定到ShowCaseCommand,但它将传入SelectionChangedEventArgs实例,而不是所选列表项

我们使用
CommandParameter
解决这个问题


我们在
列表视图中添加了一个属性,就像这样–
为什么不能将SelectedItem绑定到ViewModel中的属性?如果我有一个setter调用ShowViewModel,那么ViewModel的界面就不那么直观了。Daily Dilbert示例似乎在iOS中使用ItemSelectedCommand,而不是Windows应用商店。如果我弄明白了为什么触发器不起作用,我会在这里发布答案,但我可能最终会以某种方式预测核心库。
<ListView Grid.Row="1" ItemsSource="{Binding Cases}"  IsItemClickEnabled="False" SelectionMode="Single">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock Text="{Binding Subject}" HorizontalAlignment="Left"></TextBlock>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
    <interactivity:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="SelectionChanged">
            <core:InvokeCommandAction Command="{Binding ShowCaseCommand, Mode=OneWay}" />
            </core:EventTriggerBehavior>
    </interactivity:Interaction.Behaviors>
</ListView>
xmlns:interactivity="using:Microsoft.Xaml.Interactivity"
xmlns:core="using:Microsoft.Xaml.Interactions.Core"
<interactivity:Interaction.Behaviors>
    <core:EventTriggerBehavior EventName="SelectionChanged">
        <core:InvokeCommandAction Command="{Binding ShowCaseCommand, Mode=OneWay}" CommandParameter="{Binding ElementName=listView, Path=SelectedItem}" />
    </core:EventTriggerBehavior>
</interactivity:Interaction.Behaviors>