1

我正在尝试调试我的 MVVM 程序(基于 Josh Smith)中的一些数据绑定/性能问题。有很多不同列表和对象的并发加载,所以我一直在使用 isAsync 和一些线程来提高性能和网络瓶颈。

但是,我注意到很多消息是从 ItemsSource 绑定输出的回退值。对于命令,我创建了一个禁用命令的虚拟命令,并且对于大多数事情,我可以绑定到已知的回退原语类型。当我将 ItemsSource 的后备绑定到 {x:Null} 时,问题似乎出现了。

注意:这发生在很多地方,而不仅仅是 chartingToolkit 控件

A first chance exception of type 'System.NotSupportedException' occurred in PresentationFramework.dll
A first chance exception of type 'System.Xaml.XamlObjectWriterException' occurred in System.Xaml.dll
System.Windows.Data Information: 41 : BindingExpression path error: 'LineValueList' property not found for 'object' because data item is null.  This could happen because the data provider has not produced any data yet. BindingExpression:Path=LineValueList; DataItem=null; target element is 'LineSeries' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')
System.Windows.Data Information: 20 : BindingExpression cannot retrieve value due to missing information. BindingExpression:Path=LineValueList; DataItem=null; target element is 'LineSeries' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')
System.Windows.Data Information: 21 : BindingExpression cannot retrieve value from null data item. This could happen when binding is detached or when binding to a Nullable type that has no value. BindingExpression:Path=LineValueList; DataItem=null; target element is 'LineSeries' (Name=''); target property is 'ItemsSource' (type 'IEnumerable')

<chartingToolkit:LineSeries DependentValuePath="Value" IndependentValuePath="Key" ItemsSource="{Binding Path=LineValueList,IsAsync=True,FallbackValue={x:Null}}">

我的问题:

  1. 这些消息令人担忧吗?我的很多最终用户都有旧机器(并且拒绝升级-.-),所以我一直在努力最大限度地提高性能。
  2. 创建虚拟基类型并从 App.xaml 引用它们是否安全?
  3. 我对这些列表中的大多数进行了数据模板化,这是造成这种情况的原因吗?

提前致谢。

4

1 回答 1

1

您可以在加载真实源时使用PriorityBinding绑定到虚拟数据源。我希望这有帮助。

于 2012-11-08T16:19:06.690 回答