如何将属性绑定到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; }
我怎么能意识到这一点?
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模式。