将wp8升级到wp8.1 silverlight,初始化组件时Listpicker错误

时间:2015-07-19 10:53:44

标签: c# silverlight mvvm windows-phone-8.1 listpicker

升级到Wp8.1 silverlight后,我的listpicker在运行时失败,执行InitializeComponent();时。

listpicker来自的WPtoolKit已更新,但仍在我的解决方案中:\packages\WPtoolkit.4.2013.08.16\lib\wp8\Microsoft.Phone.Controls.Toolkit.dll

列表选择器显示在xaml设计视图中,代码为:

xmlns:toolkit="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit"
.
.
.
<StackPanel Grid.Row="0" Grid.RowSpan="3"  Orientation="Horizontal" >
        <toolkit:ListPicker x:Name="LP_Map" Width="284" Template="{StaticResource ListPicker_ChooseCountry_CreateGame_test}" BorderBrush="#FF884900">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <cmd:EventToCommand Command="{Binding ChangeMapCommand}" CommandParameter="{Binding ElementName=LP_Map}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <toolkit:ListPickerItem Background="#FFAB7D33" Content="Europe1328WithWater" Foreground="Black" Style="{StaticResource ListPickerItem_CreateGame_ChooseCountry_test}" />
        </toolkit:ListPicker>

        <toolkit:ListPicker x:Name="Player_LP" Width="150" SelectionChanged="SelChangedCommand" BorderBrush="#FF884900" Foreground="Black">
            <toolkit:ListPickerItem Background="#FFAB7D33" Content="2 Players" Foreground="Black" FontFamily="Andalus" />
            <toolkit:ListPickerItem Background="#FFAB7D33" Content="3 Players" FontFamily="Andalus" />
            <toolkit:ListPickerItem Background="#FFAB7D33" Content="4 Players" FontFamily="Andalus" />
        </toolkit:ListPicker>
    </StackPanel>

我不明白为什么我会收到XAML解析错误,是否需要明确更新或在重新定位解决方案后更改?

注意 使用MVVMLight的EventToCommand不是问题,已更新为使用参数包。

1 个答案:

答案 0 :(得分:1)

Windows Phone 8.1 Silverlight中没有ComboBox。

我目前正在使用最新版本的WP phonetoolkit处理WP8.1 Silverlight解决方案。使用ListPicker没有问题。这是一个例子:

xmlns:Local="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

<toolkit:ListPicker
                    x:Name="MyListBox"
                    BorderBrush="{StaticResource AppBackground}"
                    Foreground="{StaticResource AppTextColor}"
                    ItemsSource="{Binding Categories}">
                    <Local:Interaction.Triggers>
                        <Local:EventTrigger EventName="SelectionChanged">
                            <Local:InvokeCommandAction Command="{Binding DataContext.OpenCategoryCMD, ElementName=LayoutRoot}"
                                                   CommandParameter="{Binding ElementName=MyListBox, Path=SelectedIndex}"/>
                        </Local:EventTrigger>
                    </Local:Interaction.Triggers>
                </toolkit:ListPicker>

在ViewModel中:

private void OpenCategory(int categoryIndex) { ... }