2016-10-07 8 views
1

UWP의 TextBox.Text 바인딩에 문제가 있습니다. 나는 UWP TextBox 텍스트 바인딩이 작동하지 않습니다.

나는 텍스트 상자와 XAML

에서 같은 범위에있는 버튼을 가지고 ... 년 동안 WPF를하고 일반적으로 내가 XAML에서 일을 해요하지만이 작업을 바인딩을 얻을 수없는 것을 알 수있다
<StackPanel Orientation="Horizontal" 
      Margin="0,10,0,0"> 
    <TextBox Width="200" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}"/> 
    <Button Margin="10,0,0,0" 
      Command="{Binding SearchBusCommand}">Go</Button> 
</StackPanel> 

내가 텍스트 상자에 텍스트를 입력하고 버튼을 누르면, 명령이 실행하고 검색 텍스트 값이 null의 경우 바인딩 속성은 뷰 모델

public ICommand SearchBusCommand { get; } 

public string SearchText { get; set; } 

그러나, 동일한 범위에있는 ...

내 TextBox에 텍스트를 입력하면 SearchText 속성이 Text 값으로 업데이트됩니다.

ViewModel에서 SearchText 속성의 값을 설정하면 TextBox에 표시됩니다.

답변

2

좋아, UWP에서는 TextBox.Text 속성의 바인딩이 기본적으로 OneWay 인 것 같습니다.!

작동하도록하려면 바인딩을 TwoWay로 설정해야했습니다.

<TextBox Width="200" Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 

왜 그럴까요!?

+0

성능상의 이유로 그리고 x : 바인딩은 기본적으로 OneTime입니다. – AlexDrenea

+0

@AlexDrenea하지만 왜 OneWay를 TextBox.Text에 바인딩할까요? 그것이 TextBlock의 목적입니다. –

+0

@GlenThomas 바인딩은 어디에서나 기본 모드 OneWay를 사용합니다. 컨트롤/속성에 의존하지 않습니다. 사용되는 곳이 다양 할 수 있습니다. 혼란 스러울 수도 있습니다. –

관련 문제