我们需要动态创建(即在运行时,通过代码隐藏)UserControls并将它们放置在Canvas上 . 我们想将位置(Canvas.Left和Canvas.Top)和那些相当大的(!)和draggable(!)UserControls的宽度绑定到ObservableCollection <> . 当用户拖动或调整控件大小时,数据源会自动更新 .
如果Usercontrol包含在DataTemplate中,我们如何实现这一点呢?DataTemplate又由ListBox使用,其ListContext设置为我们想要绑定的集合?
换句话说,我们如何绑定XAML中不存在的控件的位置和大小,但仅限于代码(因为它是通过单击并拖动鼠标创建的)?
请注意,集合可以为空或非空,这意味着必须正确绑定存储在数据源中的大小和位置,以便可以在Canvas中正确地调整UserControl的大小和位置 - 通过DataBinding . 这可能吗?
1 回答
您是否尝试过使用
Mode=TwoWay
绑定?我不相信双向绑定可以用于调整大小或拖放操作,但只有一种方法可以找到 .