1

Canvas我有一个(可移动的)对话框窗口,我想根据某些静态窗口是否打开而从应用程序的右侧(其父容器是)偏移其初始位置。

因此,我需要一些类似的东西

<MyWindow Canvas.Right="{Binding Element.Width + Element2.Width}" />

这不会完全起作用,虽然好像Element1不可见我不想在计算中使用它。也许合乎逻辑的结论是,这不能仅通过绑定来完成,我需要在ViewModel.

这引发了另一个问题,因为这些元素中的每一个(包括父窗口)都有自己的ViewModel. ViewModel其中一个直接与 View 交互以计算此信息是否违反最佳实践?

4

1 回答 1

2

您可以使用MultiBinding并计算IMultiValueConverter.

如果元素被折叠,其ActualWidth属性应为 0,因此您可以使用元素的ActualWidth属性进行绑定。

于 2013-07-05T09:13:31.367 回答