0

綁定在Silverlight一個正文塊到一個依賴屬性屬性我有一個是在運行時被填充的自定義對象類型依賴項屬性。它被正確更新,並且corect信息被存儲在這個對象中。使用MVVM

然而,當我嘗試此對象的屬性綁定到一個文本塊,沒有出現文字(儘管它肯定有數據)。

所以,我們說的對象類型如下:

Public class CustomObject{ 
[Key] 
public int Id { get; set; } 
public string Name { get; set; } 
} 

肯定是被填充這個對象,我有斷點驗證了這一點。

我創造的這個依賴項屬性的對象類型,這絕對正常工作 - 這也得到了驗證。我們調用依賴項屬性SelectedCustomObject。

我結合這個依賴屬性我的看法:

<TextBlock Text="{Binding SelectedCustomObject.Name, Mode=TwoWay}" FontSize="10" VerticalAlignment="Center" HorizontalAlignment="Center"/> 

的DataContext設置在我的用戶控制,這肯定能行,我在同一個視圖模型已經提出了若干綁定到其他依賴屬性和他們完美地工作。

因此,通過消除過程中,我只能假設,我的XAML語法是關閉的,你不能綁定到這樣我人口稠密和工作依賴屬性。

任何人都可以提供一些線索這對我來說嗎?

回答

1

的回答我的問題竟然是那個Silverlight的是保持一個單獨的緩存,因此我的新的相關財產是,無論出於何種原因,不加載。

我刪除和再生我的.xap文件,什麼都沒有。

我清了IE緩存,什麼都沒有。

我從開始菜單打開微軟的Silverlight,就​​到了應用程序存儲選項卡,並刪除了所有 - 然後當我刷新,我的所有作品出現。

快樂的日子。

希望這可以幫助其他人:)。

0

的CustomClass需要執行INotifyPropertyChanged所以UI將被通知的變化

+0

是的,當依賴屬性設置這個叫。 – 2012-07-12 09:47:06

0

很可能你的觀點結合到物業後您Name值被設定的。正如@Erno所指出的那樣,您的觀點不會被告知更改。實施INotifyPropertyChanged將讓你CustomObject通知您的觀點,即屬性已更改。

這裏是實現可能的樣子:

public class CustomObject : INotifyPropertyChanged 
{ 
    [Key] 
    public int Id { get; set; } 

    private string _name; 
    public string Name 
    { 
     get { return _name; } 
     set 
     { 
      _name = value; 
      NotifyPropertyChanged("Name"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    protected void NotifyPropertyChanged(string info) 
    { 
     if (PropertyChanged != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(info)); 
     } 
    } 
} 
+0

這在我的實現中已經完成了。我正在使用Galasoft MVVMLight框架:) – 2012-07-12 09:47:27