将计算绑定到元素属性

时间:2013-07-05 09:07:28

标签: c# wpf xaml binding

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

因此我需要一些与此相关的内容

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

这不会完全奏效,但好像Element1不可见,我不希望它在计算中。也许合乎逻辑的结论是,这不能仅通过绑定来完成,我需要ViewModel上的属性。

这引发了另一个问题,即每个元素(包括父窗口)都有自己的ViewModel。这些ViewModel中的一个与观点直接交互以计算此信息的最佳做法是不是会违反这些信息吗?

1 个答案:

答案 0 :(得分:2)

您可以使用MultiBinding并计算IMultiValueConverter中的总宽度。

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