Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Silverlight 在MVVM灯光下将Textblock绑定到Textbox_Silverlight_Xaml_Data Binding_Mvvm_Mvvm Light - Fatal编程技术网

Silverlight 在MVVM灯光下将Textblock绑定到Textbox

Silverlight 在MVVM灯光下将Textblock绑定到Textbox,silverlight,xaml,data-binding,mvvm,mvvm-light,Silverlight,Xaml,Data Binding,Mvvm,Mvvm Light,我有一个非常简单的MVVM Light应用程序,它有一个textblock和一个textbox。我尝试使用MVVM Light工具箱和数据绑定将textblock值设置为textbox值。当我运行程序时,文本块文本不会更新 private string _name = "Test Name"; public string Name { get { return _name; } set {

我有一个非常简单的MVVM Light应用程序,它有一个textblock和一个textbox。我尝试使用MVVM Light工具箱和数据绑定将textblock值设置为textbox值。当我运行程序时,文本块文本不会更新

private string _name = "Test Name";

public string Name
{                
    get
    {
        return _name;
    }
    set
    {
        _name = value;
        RaisePropertyChanged("NameChanged");
    }
}
这是XAML。“测试名称”显示正常,但不会更改为文本框的值。 文本块:

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

文本框:

<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>

您应该将“Name”传递给RaisePropertyChanged,而不是“NameChanged”。另一种解决方案是使用ElementName将TextBlock直接绑定到Textbox

XAML:


您应该将“Name”传递给RaisePropertyChanged,而不是“NameChanged”。另一种解决方案是使用ElementName将TextBlock直接绑定到Textbox

XAML:


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