2013-03-05 61 views
1

在我的WPF窗口,我宣佈:組合框在DataGridTemplateColumn。綁定不工作

public List<Brand> BrandList; 

,然後在構造函數中,列表中填充:

BrandList = new List<Brand>(EntityDao.GetInstance().GetProducts().Select(p => p.Brand).Distinct().OrderBy(b => b.Name)); 
在我的XAML代碼

然後,我宣佈一個DataGrid:

<DataGrid <!-- Properties omitted--> > 
    <DataGrid.Columns> 
     <DataGridTemplateColumn> 
      <DataGridTemplateColumn.CellTemplate> 
       <DataTemplate> 
        <ComboBox ItemsSource="{Binding Path=BrandList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}" /> 
       </DataTemplate> 
      </DataGridTemplateColumn.CellTemplate> 
     </DataGridTemplateColumn> 
     <!-- Other columns omitted --> 
    </DataGrid.Columns> 
</DataGrid> 

問題是我的組合框是空的。通過調試,我已驗證了BrandList對象保存超過80個目的,所有這些都限定的ToString()方法。

數據網格的的ItemsSource是一個簡單的ObservableCollection。

任何想法?

+0

你得到任何調試信息,如果你設置的你的綁定到高?: <組合框的ItemsSource =「{綁定路徑= BrandList,的RelativeSource = {的RelativeSource的TRACELEVEL FindAncestor,AncestorType = {x:Type Window}},PresentationTraceSources.TraceLevel = High}「/> – rhe1980 2013-03-05 13:27:29

+0

使用像WPF檢查器這樣的工具,可以檢查綁定是否有錯誤,當您測試很多事情時可能會有所幫助。 .. – mlemay 2013-03-05 13:30:44

+0

我收到很多以 System.Windows.Data結尾的警告:69:BindingExpression(hash = 33514934):找到數據上下文元素:(OK) – 2013-03-05 13:31:34

回答

2

綁定與性質的作品,你宣佈一個公共成員。 你應該定義你的列表是這樣的:

public List<Brand> BrandList { get;set;} 
+0

沒有幫助:< – 2013-03-05 13:27:48

+0

確保DataGrid的 – user1064519 2013-03-05 13:30:33

+0

的結合效果很好它。 DataGrid綁定到ObservableCollection – 2013-03-05 13:32:24