【问题标题】:wp7 strange UnhandledException on databinding 0x8000ffff数据绑定 0x8000ffff 上的 wp7 奇怪的 UnhandledException
【发布时间】:2013-04-04 19:05:22
【问题描述】:

我在数据绑定期间遇到一个奇怪的未处理异常。我正在使用 IList 对 ListBox 进行数据绑定。用对象填充列表后,我将 ListBox 的 DataContext 设置为我的对象:

IList<Users> users = new List<Users>;
foreach(JToken jresult in Users)
{
User juser = JsonConvert.DeserializeObject<User>(jresult.ToString());
users.Add(juser);

this.DataContext = myObject;

我的对象只有两个字段,名称和电子邮件:

public class User
{
    public string name { get; set; }
    public string email { get; set; }    }

在 XAML 方面,我将 ListItem 和 ItemTemplate 中的文本块绑定如下:

<ListBox Name="Users" ItemsSource="{Binding}">
<TextBlock Text="{Binding Name}" Name="name" />
<TextBlock Text="{Binding Email}" Name="email" />

在调试过程中,我可以看到“用户”列表框填充了正确的项目,但是在退出该方法后,应用程序崩溃,并且我被直接带到 App.xaml.cs 方法 Application_UnhandledException。错误详情如下:

e.ExceptionObject.InnerException
{"0x8000ffff"}
    _data: null
    _HResult: -2146233088
    _innerException: null
    _message: "0x8000ffff"
    _methodDescs: {System.IntPtr[14]}
    _optionalData: null
    Data: {System.Collections.ListDictionaryInternal}
    HResult: -2146233088
    InnerException: Could not evaluate expression
    Message: "0x8000ffff"
    StackTrace: "   at MS.Internal.XcpImports.CheckHResult(UInt32 hr)\r\n   at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)\r\n   at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)\r\n   at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)\r\n   at MS.Internal.XcpImports.MeasureNative(IntPtr element, Single inWidth, Single inHeight)\r\n   at MS.Internal.XcpImports.UIElement_Measure(UIElement element, Size availableSize)\r\n   at System.Windows.UIElement.Measure(Size availableSize)\r\n   at System.Windows.Controls.VirtualizingStackPanel.MeasureChild(UIElement child, Size layoutSlotSize)\r\n   at System.Windows.Controls.VirtualizingStackPanel.MeasureOverride(Size constraint)\r\n   at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)\r\n   at MS.Internal.XcpImpor
ts.MeasureOverrideNative(IntPtr element, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)\r\n   at MS.Internal.XcpImports.FrameworkElement_MeasureOverride(FrameworkElement element, Size availableSize)\r\n   at System.Windows.FrameworkElement.MeasureOverride(Size availableSize)\r\n   at System.Windows.FrameworkElement.MeasureOverride(IntPtr nativeTarget, Single inWidth, Single inHeight, Single& outWidth, Single& outHeight)\r\n"

我无法弄清楚这一点,并且非常感谢任何指导,或者可能是解决此类问题的更好方法。一篇文章确实提到 SilverLight 不再支持 ListDictionaryInternal,所以我不确定这是否是问题所在,因为错误详细信息指向 ListDictionaryInternal。

【问题讨论】:

  • 关于此错误原因的任何新信息?我也面临同样的问题。

标签: data-binding windows-phone-7


【解决方案1】:

想听些奇怪的东西。我遇到了这个问题,并在 XAML 中删除了一个 style="{StaticResource ....} 并修复了它。有人可以解释为什么吗?之后我添加了一个本地 StaticResource 并且它也有效。

如果您在 ListBox 项中的任何位置都没有设置样式,那么此解决方案将无济于事。

【讨论】:

  • 我发现了错误,它在 xaml 中。我放了一个普通的香草xaml,效果很好。然后我开始看到差异,并将其缩小为前景色拼写错误的颜色名称。我不知何故写了“bl”而不是“black”。一旦我把它改成黑色,一切都很好! firebellys,感谢您的指导,它让我查看了项目模板并修复了它:)
  • 非常感谢!无论如何,我永远不会发现:D
  • 似乎这就是框架因响应随机的普通 xaml 错误而陷入混乱时发生的情况。经过很多headdesk,我发现我有两个同名的菜单项。再见了我生命中的三个小时,我再也见不到你了。
  • 谢谢!从 ListBox.ItemTemplate 中定义为 DataTemplate 的 TextBlock 中删除 style="{StaticResource ....}" 解决了这个问题。但问题是什么?
【解决方案2】:

这与数据绑定无关,我认为这是一般错误当我处理我的项目时,我的电脑给了我蓝屏错误,当我再次启动我的电脑时,我想运行我的项目,我看到 0x8000FFFF 错误我找不到确切的解决方案网络,但我尝试从 Visual Studio 中删除 licenses.licx 文件,我解决了问题:)

【讨论】:

    猜你喜欢
    • 2019-02-23
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多