2013-07-22 108 views
1

我已經按照http://msdn.microsoft.com/en-us/library/ms743695.aspxhttp://msdn.microsoft.com/en-us/library/aa970451.aspx中的例子來寫了這封信。當綁定到StaticResource時WPF UI沒有更新

在我的情況下,我有一個標籤,內容綁定到Name屬性。

<Label Name="lblName" Content="{Binding Source={StaticResource myDataSource}, Path=Name}"/> 

頁面上有一個文本框和一個按鈕。按鈕的代碼隱藏是

Dim p As New Person 
p.Name = txtbox1.Text 

通過我看到OnPropertyChanged被調用,然後與PERSONNAME正確值二傳手步執行代碼。運行後,頁面上的標籤仍然保持原始值。我想我錯過了一些非常簡單的事情,但經過大量搜索和反覆試驗後,無法正常工作。任何幫助非常感謝。

回答

1

你的代碼背後是創建一個新的人,而不是使用myDataSource中的實例。

'This creates a new instance - you need to set "myDataSource.Name" instead 
Dim p As New Person 
+0

感謝。我將p.Name = txtbox1.Text更改爲myDataSource.Name,但不能編譯 – oldDavid

+0

我將p.Name = txtbox1.Text更改爲myDataSource.Name = txtbox1.Text,但未編譯 'myDataSource'未聲明。由於其保護級別,它可能無法訪問。 myDataSource在XAML 定義 <來源:人X:鍵= 「myDataSource」 PNAME = 「弗雷德」/> oldDavid

+0

@ user2336805你需要把它出頁面資源本身... –

0

爲此在構造函數中

Me.DataContext = myDataSource

+0

我將該代碼添加到Page構造函數中,但它不編譯 'myDataSource'is未宣佈。由於其保護級別,它可能無法訪問。 myDataSource在XAML中定義 oldDavid