Prism不在WP7.1中工作,但在WP8中工作

时间:2013-03-12 18:17:50

标签: silverlight windows-phone-7 c#-4.0 prism

我使用MVVM开发了一个Windows Phone应用程序(Prism v4.1)。 当我将它部署到Emulator WVGA或我的HTC 8X时,一切正常,但是当我将它部署到我的Lumia 800或使用Emulator 7.1时,它无效。

这是视图的一部分(模型)希望它有点帮助

View

<phone:PhoneApplicationPage
    x:Class="LearnByTranslate.Views.PhrasePracticeView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
    xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:ec="clr-namespace:Microsoft.Expression.Interactivity.Core;assembly=Microsoft.Expression.Interactions"
    xmlns:converter="clr-namespace:LearnByTranslate.Infrastructure.Convverters"

    FontFamily="{StaticResource PhoneFontFamilyNormal}"
    FontSize="{StaticResource PhoneFontSizeNormal}"
    Foreground="{StaticResource PhoneForegroundBrush}"
    SupportedOrientations="Portrait" Orientation="Portrait"
    mc:Ignorable="d"
    shell:SystemTray.IsVisible="True">

    <Grid x:Name="LayoutRoot" Background="Transparent">
        <ScrollViewer Margin="24,0,24,72" Grid.Row="1">
            <StackPanel x:Name="stkPracticeContent" Margin="0">
                <TextBlock x:Name="txtTextToTranslate" HorizontalAlignment="Left" TextWrapping="Wrap" Text="{Binding EnglishPhrase,Mode=TwoWay}" FontSize="40" FontStyle="Normal" VerticalAlignment="Top" Style="{StaticResource EnglishSentenceStyle}" FontFamily="Segoe WP Light">
                    <TextBlock.Foreground>
                        <SolidColorBrush Color="{StaticResource PhoneForegroundColor}"/>
                    </TextBlock.Foreground>
                </TextBlock>               
            </StackPanel>
        </ScrollViewer>
    </Grid> 
</phone:PhoneApplicationPage>

ViewModel

class PhrasePracticeViewModel : NotificationObject
{       
    private string _englishPhrase;     

    public PhrasePracticeViewModel()
    {

    }       

    public string EnglishPhrase
    {
        get { return _englishPhrase; }
        set
        {
            _englishPhrase = value;
            RaisePropertyChanged(() => EnglishPhrase);
        }
    }       
}

除了这个视图外,一切正常(关于其他视图中的绑定)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是我见过的最奇怪的事情之一。

对此的反应是我的ViewModel类没有public(如上所示)。我会更深入地研究一下为什么它适用于WP8但不适用于WP7.1,但它真的让我感到沮丧。

希望这有助于其他人。