2012-05-06 4 views
0

У меня очень простое приложение MVVM Light с текстовым блоком и текстовым полем. То, что я пытаюсь сделать, - установить значение текстового блока в значение текстового поля, используя MVVM Light Toolkit и привязку данных. Когда я запускаю программу, текст текстового блока не обновляется.Связать текстовый блок с текстовым полем в MVVM Light

private string _name = "Test Name"; 

public string Name 
{     
    get 
    { 
     return _name; 
    } 
    set 
    { 
     _name = value; 
     RaisePropertyChanged("NameChanged"); 
    } 
} 

Вот XAML. «Имя теста» выглядит нормально, но не изменяется на значение текстового поля. TextBlock:

<TextBlock x:Name="NameTitle" 
      Text="{Binding Name}" 
      Margin="-3,-8,0,0"/> 

TextBox:

<TextBox Text="{Binding Name, Mode="TwoWay"}" x:Name="tb"    
     HorizontalAlignment="Center" 
     VerticalAlignment="Center" 
     FontSize="40" > 
     <i:Interaction.Triggers> 
      <i:EventTrigger EventName="LostFocus"> 
      <commands:EventToCommand Command="{Binding Name}" 
         CommandParameter="{Binding Text, ElementName=tb}" /> 
      </i:EventTrigger> 
     </i:Interaction.Triggers> 
</TextBox> 

ответ

4

Вы должны передать "Name" в RaisePropertyChanged вместо "NameChanged". Другим решением было бы связать TextBlock непосредственно к Textbox с помощью ELEMENTNAME

XAML:

<TextBlock x:Name="NameTitle" Text="{Binding ElementName=tb, Path=Text}" Margin="-3,-8,0,0"/> 
Смежные вопросы