使用外部组件时页面状态的InvalidOperationException导致XamlParseException

时间:2013-09-19 09:50:32

标签: c# xaml windows-phone-8

如标题中所述,当我在XAML中使用Coding4Fun ColorPicker时,我遇到了这个例外。

我已尝试删除对此组件的所有引用,并且页面加载正常。

以下是代码:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ScrollViewer>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition/>
            </Grid.RowDefinitions>
            <phone:Pivot Grid.Row="0">
                <phone:PivotItem CacheMode="{x:Null}" Header="Background">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition/>
                            <ColumnDefinition Width="5*"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="5*"/>
                            <RowDefinition/>   
                        </Grid.RowDefinitions>
                        <c4f:ColorPicker Grid.Row="0" Grid.ColumnSpan="2"/>
                        <TextBlock Grid.Row="1" Grid.Column="0" Text="Opacity:"/>
                        <Slider Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" Style="{StaticResource CustomSlider}"/>
                </Grid>
            </phone:PivotItem>
            <phone:PivotItem CacheMode="{x:Null}" Header="Foreground">
                <Grid>
                    <c4f:ColorPicker/>
                </Grid>
            </phone:PivotItem>
            </phone:Pivot>
            <ContentPresenter Grid.Row="1" Content="{Binding CustomSettings}"/>
        </Grid>
    </ScrollViewer>
</Grid>

编辑: 我在使用ColorPicker之前添加了BindableAppBar,现在异常已移至AppBar的行。

当我使用外部库时,似乎会抛出异常!

编辑2:

似乎异常取决于ApplicationState,但我没有错误使用它!

public Settings()
    {
        try
        {
            InitializeComponent();
            DataContext = this;
        }
        catch (Exception e)
        {
            e.GetType();
        }
    }


    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        base.OnNavigatedTo(e);
        // Get the model from app's state
        Model = (BasePluginModel)PhoneApplicationService.Current.State["active"];
    }

InitializeComponent()方法抛出异常,导航到页面的State属性,它说:

  

-State'((Microsoft.Phone.Controls.PhoneApplicationPage)(this))。State'生成异常'System.InvalidOperationException'System.Collections.Generic.IDictionary {System.InvalidOperationException}

展开对象,Message为:

  

消息“您只能在OnNavigatedTo和OnNavigatedFrom之间使用State”字符串

现在,从代码中你可以看到我只在正确的事件中使用状态。即使评论该行也会导致相同的错误。这段代码出了什么问题?

编辑3:

这些是我正在使用的命名空间。一切都是从NuGet下载的。

xmlns:c4f="clr-namespace:Coding4Fun.Toolkit.Controls;assembly=Coding4Fun.Toolkit.Controls"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:bar="clr-namespace:BindableApplicationBar;assembly=BindableApplicationBar"

0 个答案:

没有答案