2010-06-07 54 views
0

(對於本例)ListBox l綁定到CustomObjectCollection c。帶構造函數的WPF數據綁定

我是否調用c的構造函數?

如果c是一個泛型對象,該怎麼辦?

**In XAML (1)**
<ListBox Content={Binding CustomObjectCollection}/>

**In Codebehind**
CustomObjectCollection<MyClass> c;
**In XAML (2)**
<ListBox Content={Binding CustomObjectCollection}/>

假設在c,我填充集合(動態,使用構造)
哪結合會調用構造函數?

對不起,如果這不清楚,我不知道如何解釋它。

+1

這個問題不是很清楚。你想達到什麼目的?你可以發佈你的XAML /代碼隱藏嗎? – Charlie 2010-06-08 00:22:00

回答

1

你應該綁定到一個屬性。如果需要構建源對象,則必須在後面的代碼中完成。

<ListBox ItemsSource={Binding ListSource} /> 

//Codebehind 
class MyControl : UserControl { 
    public CustomObjectCollection ListSource {get; private set;} 

    public MyControl() { 
     ListSource = new CustomObjectCollection (/*arguments*/); 
     InitializeComponent(); 
     DataContext = this; 
    } 
} 
1

有兩件事情:

  1. 只能綁定到公共屬性。看起來您已將c聲明爲成員變量,但不是屬性。所以這個綁定不會成功。
  2. 無法使用ListBox上的Content屬性進行綁定。我認爲你正在嘗試使用ItemsSource屬性更好地完成。查看MSDN上鍊接的示例;這應該讓你開始。