大家好我最近开始使用Windows应用商店开发,现在我正在研究数据绑定。我查看了MSDN的示例并尝试运行它,但我一直收到错误,这是我正在处理的代码
这是我的Mainpage.xaml
文件
<Grid x:Name="LayoutRoot" Background="#FF0C0C0C">
<TextBox x:Name="textBox1" Text="{Binding}" FontSize="30"
Height="120" Width="440" IsReadOnly="True"
TextWrapping="Wrap" AcceptsReturn="True" />
</Grid>
这是Mainpage.xaml.cs
档
// Constructor
public MainPage()
{
InitializeComponent();
// Set the data context to a new Recording.
textBox1.DataContext = new Recording("Chris Sells", "Chris Sells Live",
new DateTime(2008, 2, 5));
// Theres an error message that says textBox1 does not appear in the current context though i have declared it in the MainPage.xaml file
}
// A simple business object
public class Recording
{
public Recording() { }
public Recording(string artistName, string cdName, DateTime release)
{
Artist = artistName;
Name = cdName;
ReleaseDate = release;
}
public string Artist { get; set; }
public string Name { get; set; }
public DateTime ReleaseDate { get; set; }
// Override the ToString method.
public override string ToString()
{
return Name + " by " + Artist + ", Released: " + ReleaseDate.ToString("d");
}
}
我在MainPage.xaml.cs
文件中收到错误消息:
textbox1不会退出
虽然它在MainPage.xaml
文件中。
答案 0 :(得分:1)
我不确定为什么编译器会说你这个错误。因为名称在您的代码中看起来不错。根据我的经验,它可能是其他地方的错误,并且编译器会针对所有类型的错误发出一条错误消息(我在Windows Phone的第一版SDK中遇到过这种情况)。
接下来这对我来说看起来并不好看:
Text
的{{1}}属性绑定到数据上下文。但另一方面,您将对象设置为构造函数中的数据上下文。绑定到对象有点困难(通常在WPF中收到TextBox
方法的结果)。这可能是错误的原因。尝试绑定到某些属性。例如:ToString()
Text="{Binding Name}"
是继承属性。这意味着如果您为窗口设置DataContext
,则此窗口内控件的所有属性都是相同的。因此,最佳做法是将设置代码替换为下一个DataContext
this.DataContext=..
类的属性时,UI将对此一无所知。您必须实现INotifyPropertyChanged接口才能解决此问题。