2010-02-03 54 views
2

在WPF应用程序中,我有一个ObservableCollection对象(图像上的区域),我希望在运行时显示和编辑(大小和位置)。Databind InkCanvas Children

我想在选择模式下使用InkCanvas,矩形代表我的对象,但它似乎不直接支持数据绑定。

是否有可能以某种方式将InkCanvas的Children集合绑定到ObservableCollection?

+1

我试图做类似的事情,但找不到任何明显的东西。最后使用附加的依赖项属性来手动同步我想绑定的Children集合和ObservableCollection。我很乐意听到任何更好的建议 – 2010-02-08 12:50:13

+0

这就是我现在正在做的事。除了手动填充InkCanvas儿童外,我还处理SelectionMoved和SelectionResized,并手动将值重新放入模型中。这一切在我看来都像是一件明显的事情,让他们在未来的版本中加强。 – 2010-02-09 12:19:38

回答

1

您是否尝试过使用ItemsControl作为ItemsControl.ItemsPanel的ItemsControl?然后,您可以将ItemsSource属性绑定到您的ObservableCollection。然后,您可以使用ItemsControl.ItemsTemplate将项目的属性绑定到Canvas.Left(Right)属性以进行绝对放置。

+0

但是,您将无法通过EditingMode.Selection选择InkCanvas的这些子项。如果它是只读的,这是一个适当的解决方案,但它不是一个通用的InkCanvas解决方案。 – 2011-11-08 00:04:55