如何调试XAML / WPF控件中的问题?

时间:2012-01-26 18:07:32

标签: wpf xaml

我正在尝试使用Telerik的WPF控件在WPF中构建维护表单。我们的想法是拥有一个绑定到同一集合的网格和表单。对网格的更改应立即反映在表单中,反之亦然。使用Telerik的Silverlight控件的在线示例是here

我的具体问题是当我输入一条新记录时(通过单击DataForm右上角的“添加”图标),该记录将添加到网格和表单的集合中,但似乎打破同步。网格中的新行保持突出显示,如网格认为未完成编辑,并且当表格中当前记录的更改反映在网格中时,网格中当前记录的更改不再反映在网格中形式。

但我真正的问题比这更普遍。与Telerik一样,WPF控件严重依赖于绑定,并且具有绑定的内容以支持特定的行为。在这种情况下,底层记录需要支持INotifyIEditableObject,这样当用户点击表单上的Cancel按钮时,可以调用记录上的EditCancel方法。然后负责将其属性设置回原来的状态,然后引发NotifyPropertyChanged事件,以便通知控件已经设置好。

当我没有EditCancel正常工作时,我会在表单上点击取消,并且不会更改网格中的值。我猜测插件的内容是我的集合或记录中的某些内容不支持使其工作的任何东西。网格不知道表单已完成编辑记录,因为我的记录或集合都没有告诉它。

这是真正的问题:如何找出这些第三方控件的预期? Telerik的RadGrid几乎可以绑定任何IEnumerated。但所有这些整洁的增强功能取决于绑定到更具体的集合。我没有得到错误,当我绑定到缺少某些功能所需的工具的集合时,我只是得到一个不起作用的控件。

在与其他人的控件合作时,如果我没有源代码,它需要什么功能,在它绑定的对象中怎么说呢?

1 个答案:

答案 0 :(得分:2)

您最好的选择是浏览Telerik's documentation或询问support forums

如果这不起作用,我喜欢使用Snoop来调试WPF的Visual Tree,使用Reflector来查看已编译的库