2016-05-24 3 views
1

У меня есть TextBlock, где я хочу писать текст. Для этого я использую TextBox и другую логику в фоновом режиме.TextBlock не обновляет содержимое

<TextBlock 
    Text="{Binding Chunk}" 
    TextBlock.FontFamily="Arial" 
    VerticalAlignment="Center" 
    HorizontalAlignment="Left" /> 

<TextBox 
    Text="{Binding Chunk, UpdateSourceTrigger=PropertyChanged}" 
    Width="400" 
    AcceptsReturn="True" 
    MaxHeight="80" 
    Margin="0,10,20,10" 
    Padding="0,5,0,5" /> 

    public string Chunk 
    { 
     get { return chunk; } 
     set 
     { 
      if (value == chunk || (value != null && value.Length > 400)) 
       return; 

      chunk = value; 
      OnPropertyChanged("Chunk"); 
     } 
    } 

Теперь, если я что-то пишу в TextBox, содержимое TextBlock обновляется, как и ожидалось. Но если я напишу что-то в Chunk на заднем плане, содержимое TextBlock и TextBox не будет обновлено. Событие OnPropertyChanged запускается, но, очевидно, будет проигнорировано.

Любая идея, почему?

+0

Вы пытались указать 2way? Text = "{Binding Path = Chunk, Mode = TwoWay, UpdateSourceTrigger = PropertyChanged} –

+0

@ Benoît Вы имеете в виду режим = TwoWay? Да, ничего не изменил – seeb

ответ

3

Вам необходимо реализовать интерфейс INotifyPropertyChanged на ViewModel. Я все время забываю об этом.

+0

Да! В этом была проблема. Спасибо! – seeb