如标题中所述,当我在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"