这是一个WPF应用程序,旨在在客户端之间发送文件。我正在研究一个旨在显示已发送文件,其收件人等的列表的用户控件。
我正在尝试设置控件的样式,但是我需要示例数据来填充它。在these instructions之后,我创建了一个扩展SampleFilesSource.cs
的{{1}}。它会生成一个视图的视图模型的实例,该实例中填充了DataSourceProvider
个随机的近期文件。
接下来,在视图中,我以此设置设计时间ObservableCollection
:
DataContext
但是什么都没有出现……发生了什么事?
好吧,让我们看看。 Blend中的“数据”窗格使我们可以查看设计时<d:UserControl.DataContext>
<sample:SampleFilesSource/>
</d:UserControl.DataContext>
中可用于绑定的内容。让我们来看看。
这很有趣。我的DataContext
中有一个例外。 “数据”窗格不显示任何值,仅显示可以绑定到的字段。那么我如何窥视异常的DataContext
?我可以绑定吗?
不幸的是……实际上,当我尝试Message
时,输出任何文本的唯一绑定是“(Collection)”。这些字段在{Binding Data.RecentFiles}
对象下可见,但是没有任何值。
但是,如果我将运行时Data
设置为示例数据生成器怎么办?只需从DataContext
标记中删除那一点d:
,然后进行调试...仍然没有运气。通过查看实时可视树,我可以看到DataContext
绑定到了视图模型的实例。有趣的是,这次数据上下文中唯一的一个是DataContext
字段。
运行时没有Error
字段,并且Data
字段是Error
的实例。我认为为空。属性资源管理器只有一个空框,没有选项可以查看它。我认为在调试会话中没有出现未处理的异常很奇怪。它以某种方式卡在Exception
中?
除了清理,重建,重新启动VS,重新启动计算机以及其他我已经尝试过的方法之外,我还能做些什么来窥视DataContext
? Here's一个方便的小指南,用于将调试器附加到Visual Studio的设计器过程。太酷了!
我只能从调试器中学到一些东西:
Message
生成的视图模型是有效的,看起来不错,没有引发异常。DataSourceProvider
的{{1}}字段在我离开代码时为空。所以我只能说,该异常发生在我调用DataSourceProvider
之后,而在设计者得到它之前,它就交给了生成的Error
。
我很困惑。有什么想法吗?
我创建了一个共享的最低限度示例,并确保确实在表达式混合的“数据”窗格中显示了该异常。但是,实际上我可以绑定到示例中生成的样本数据,所以现在我认为异常是红色鲱鱼,而我的问题出在其他地方。我什至不确定是否有例外,“数据”窗格只是显示它的作用,因为那里可能有例外。
Here's是其他人想要窥视的示例。
答案 0 :(得分:1)
您可以显示一些代码吗? 您可以通过简单的方式查看问题,可以尝试绑定单个值。如果成功,则可以证明您的绑定部分没有问题。然后,您可以从数据模板开始。