2010-05-08 3 views
0

내 MVVM 응용 프로그램에서 (wpf) 두 개의보기가 있고 내 텍스트 상자 값 (다른보기에서) 내 컨텍스트를 바인딩하려면다른보기에서 컨트롤 사이에 바인딩 값 - WPF/MVVM

<label context="{binding on the tbArt value????}">

이 behing와 viewmodels 코드에 가지 않고 직접 그 가능 : <TextBox x:Name="tbArt" value="XX"/>

DescriptionView.xaml이 컨트롤을 포함 :

SelectorView.xaml이 컨트롤을 포함? 레이블이 자동으로 새로 고침됩니까?

감사합니다.

+1

이러한보기가 '페이지'로 분리되어 있습니까? 아니면 동일한 페이지에서 호스트 된 컨트롤입니까? –

+0

동일한 페이지에서 제어됩니다. – Tchoupi

답변

0

두 컨트롤이 동일한 속성에 데이터 바인딩하면 값을 변경할 때 레이블이 새로 고침됩니다. 속성이 변경되면 트리거되는 속성이 변경되었는지 확인하십시오.

ex : in XAML.

<TextBox x:Name="tbArt" value="{Binding Path=TheProperty, UpdateSourceTrigger=PropertyChanged}"/> 
<label context="{binding TheProperty}"> 

텍스트 상자에 사용하십시오 :

UpdateSourceTrigger =하여 PropertyChanged

. 그렇지 않으면 포커스가 텍스트 상자에서 이동 될 때까지 속성이 변경되지 않습니다.

0

당신이해야 할 모든이 동일한 창/페이지 내에서 다른 컨트롤에 하나의 제어의 값을 표시하는 경우, 당신은 할 수있는 다음

<TextBox x:Name="tbArt" Text="XX" /> 
<Label Content="{Binding Path=Text", ElementName=tbArt}" /> 

이의 텍스트의 내용을 결합한다 레이블을 "tbArt"라는 이름의 컨트롤에 추가하십시오. 컨트롤의 다른 속성으로도 동일한 작업을 수행 할 수 있습니다. 예를 들어

,

<TextBox x:Name="tbArt" Text="XX" Width=33 /> 
<Label Content="{Binding Path=Width, ElementName=tbArt}" /> 

라벨에 텍스트 상자에 "XX"와 "33"를 표시합니다.