免责声明:有很多的问题,这里大约PropertyChanged事件这始终是零,我读过一大半。但我发布了另一个(可能与其他人不同)。的PropertyChanged总是在wp7.1空,但在WP8工作正常
我创建了一个非常简单的数据绑定应用程序。它在Windows Phone 8上工作得很好,但在Windows Phone 7.1上完全不工作,因为在WP7.1上PropertyChanged始终为空。
这是我的代码(我尽量使它尽可能简单来说明问题)。
的XAML:
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<TextBox x:Name="txtTest" Text="{Binding Text}"></TextBox>
</Grid>
首页类:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
DataContext = new BindingTest();
}
}
最后,数据上下文类:
class BindingTest : INotifyPropertyChanged
{
private string _strTest = "Hello";
public string Text
{
get { return _strTest; }
set
{
if (_strTest != value)
{
_strTest = value;
RaisePropertyChanged("Text");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(name));
}
}
正如你可以看到我没有忘记设置的数据上下文中,实现INotifyPropertyChanged接口,并调用RaisePropertyChanged()。
正如我上面提到的,代码工作在Windows Phone 8模拟器,但的PropertyChanged始终为NULL的Windows Phone 7.1(设备和仿真器)。
的构造函数的MainPage不成立的PropertyChanged(已经是空的第一个任务后 - DataConext = ...)。
非常感谢您的任何建议。
谢谢,它是如此简单,但不是明显的,一个人刚刚开始C#后的C#。 – Mar