2013-07-05 4 views
1

일부 정적 윈도우가 열려 있는지 여부에 따라 앱의 오른쪽 (부모 컨테이너는 Canvas)의 오프셋 위치에서 초기 위치로 이동 대화 상자 창이 있습니다.요소 속성에 대한 계산 바인딩

같은 내가 볼 같은 경우 Element1 않네 내가 계산에 원하는 wouldnt는하지만 완전히 작동을 wouldnt이

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

이의 라인을 따라 뭔가를해야합니다. 논리적 인 결론은 혼자서 구속력을 발휘할 수 없다는 것과 ViewModel에 재산이 필요하다는 것입니다.

이렇게하면 부모 창을 포함하여 각 요소에 자체 ViewModel이라는 또 다른 문제가 발생합니다. 이 ViewModel 중 하나의보기가이 정보를 계산하기 위해 뷰와 직접 상호 작용하는 것이 가장 좋지 않을까요?

+0

이것을 확인하십시오 [불가능한 WPF 파트 2 : 바인딩 식] (http://www.11011.net/wpf-binding-expressions) – sll

답변

2

MultiBinding을 사용하고 IMultiValueConverter에서 전체 너비를 계산할 수 있습니다.

요소의 ActualWidth 속성은 축소되어 있으면 0이어야하므로 바인딩에 요소의 ActualWidth 속성을 사용할 수 있습니다.

관련 문제