2011-12-06 38 views
1

我正在Silverlight中創建一個簡單的項目。它包含一個ListBox和一個Label。 我試圖將listbox.Items.Count屬性綁定到Label.Content屬性,以便可以看到當前存在的項目數量。我用this link作爲支持和信息來源。如何將列表上的項目數量綁定到Label.Content屬性

Binding myBinding = new Binding("CountProperty"); 
// columnNameList - listbox 
myBinding.Source = this.columnNamesList.Items.Count; 
// columnCount - label 
this.columnCount.SetBinding(Label.ContentProperty, myBinding); 

由於某種原因,它不起作用。任何指針?

回答

2

你應該寫

var myBinding = new Binding("Count"); // no "Property" suffix 
myBinding.Source = this.columnNamesList.Items; // object that has the property "Count" 

首先,在你舉的例子中的屬性的名稱實際上應該包含後綴「屬性」。在這種情況下,該屬性的名稱就是「Count」,因此您必須使該綁定反映該內容。

其次,綁定源始終是公開該屬性的對象。在您的初始代碼中,this.columnNamesList.Items.Count評估爲屬性本身的值,而不是公開它的對象。

+0

Okey幫助它,現在工作。你能不能很快寫出爲什麼你將this.columnNamesList.Items作爲源而不是this.columnNamesList.Items.Count?感謝幫助。 – neurotix

+1

@neurotix:因爲它是名爲'Count'的屬性的列表(「.Items」),而Items.Count是屬性的值。我在最後一段中說的是什麼。 – Jon

+0

是的,謝謝你的信息。在擴展答案之前,我已經寫了這個。 – neurotix

相關問題