我創建了最簡單的綁定。綁定到後面代碼中的對象的文本框。WPF簡單綁定到INotifyPropertyChanged對象
事件雖然 - 文本框保持空白。
窗口的DataContext已設置,並且綁定路徑存在。
你能說出了什麼問題嗎?
XAML
<Window x:Class="Anecdotes.SimpleBinding"
x:Name="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SimpleBinding" Height="300" Width="300" DataContext="MainWindow">
<Grid>
<TextBox Text="{Binding Path=BookName, ElementName=TheBook}" />
</Grid>
</Window>
代碼背後
public partial class SimpleBinding : Window
{
public Book TheBook;
public SimpleBinding()
{
TheBook = new Book() { BookName = "The Mythical Man Month" };
InitializeComponent();
}
}
本書對象
public class Book : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(name));
}
}
private string bookName;
public string BookName
{
get { return bookName; }
set
{
if (bookName != value)
{
bookName = value;
OnPropertyChanged("BookName");
}
}
}
}
DataContext =「MainWindow」??當你這樣做時,你認爲應該發生什麼?你的datacontext只是一個叫做MainWindow的簡單字符串。你的輸出窗口也會顯示一個異常:找不到與引用'ElementName = TheBook'綁定的源。 BindingExpression:路徑= BOOKNAME;的DataItem = NULL;目標元素是'TextBox'(Name ='');目標屬性是'文本'(類型'String')。所以請給我們一些你想達到的信息。 – blindmeis
還檢查http://msdn.microsoft.com/de-de/library/system.windows.data.binding.elementname.aspx,因爲ElementName綁定不是您想要/需要的這種方式 – blindmeis