如何将属性绑定到TextBox

本文关键字:TextBox 绑定 属性 | 更新日期: 2023-09-27 18:28:49

我知道,也许这是一个简单的问题,但我不知道如何实现:

我有我的xaml代码:

<phone:PhoneApplicationPage.Background>
        <ImageBrush ImageSource="/conTgo;component/resources/images/bg_settings.png" Stretch="None"/>
    </phone:PhoneApplicationPage.Background>
    <TextBlock TextWrapping="Wrap" Text="{Binding VersionNumber}" Foreground="{StaticResource PhoneAccentBrush}" FontFamily="Segoe WP Black" FontSize="26.667" TextAlignment="Center" LineHeight="16"/>
</phone:PhoneApplicationPage>

在我身后的代码中,我有:

 public string VersionNumber { get; set; }

我怎么能意识到这一点?

如何将属性绑定到TextBox

MVVM模式强烈建议用于Silverlight开发,并且适用于此类情况,并且可以更好地设置代码以进行单元测试。

但是,如果绑定到的属性直接驻留在控件中,并且您希望将其保留在那里,则控件将需要实现INotifyPropertyChanged,以便该属性挂接到Silverlight(或WPF)的更改通知:

public class YourControl : Control, INotifyPropertyChanged
{
    public string VersionNumber {
        get { return versionNumber; }
        set {
            versionNumber = value;
            NotifyPropertyChanged("VersionNumber");
        }         
    }
    private string versionNumber;
    public event PropertyChangedEventHandler PropertyChanged;
    protected void NotifyPropertyChanged(String info) {
        if (PropertyChanged != null) {
            PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
}

不过,我再次肯定会推荐MVVM方法。

绑定在数据上下文中搜索属性。因此,如果您已将属性添加到页面中,则必须将页面设置为其自己的数据上下文。

在页面的构造函数中,在调用"InitializeComponent()"之后,添加:

this.DataContext = this;

这就行了。

这种方法适用于小型应用程序。如果你想制作更大、更结构化的应用程序,你可能想了解MVVM模式。