2011-09-19 40 views
0

好的我有一個奇怪的小問題,希望有人能幫助我。動態綁定到數據網格時的問題

要設置場景,我首先要有一個對象:

public class Date 
{ 
    public DateTime _WeekDate; 
    public ICollectionView _WeekData; 
} 

我有顯示日期的對象列表的組合框。

<ComboBox Name="cbPickupDate" ItemsSource="{Binding Path=PickupDates}" DisplayMemberPath="WeekDate" /> 

好了,現在我把選定的日期對象的集合,爲我的數據網格提供的ItemsSource:

<my:DataGrid ItemsSource="{Binding ElementName=cbPickupDate, Path=SelectedItem.WeekData}"> 
    <my:DataGrid.Columns> 
     <my:DataGridTextColumn Binding="{Binding Path=ReqID}" Header="Request ID" /> 
     <my:DataGridTextColumn Binding="{Binding Path=LineID}" Header="Line ID" /> 
     <my:DataGridTextColumn Binding="{Binding Path=OrderID}" Header="Order ID" /> 
    </my:DataGrid.Columns> 
</my:DataGrid> 

這所有的作品非常漂亮,因爲我選擇從ComboBox DataGrid中改變它的不同選擇的ItemsSource。

但是,datagrid爲我的WeekData項目中的每個值添加了一個額外的列,位於我指定的項目之上。因此,使用我已經展示過的例子,它會顯示3列reqID,lineID和OrderID,以及3列完全相同的東西,所以共有6列。

任何幫助表示讚賞,我真的在撓撓我的頭。

在此先感謝, SumGuy。

+1

我假設你已經的AutoGenerateColumns =假:) – jrb

+0

哦心肝心肝我來說,這一切都非常簡單,當你知道如何。這確實是問題,謝謝。 – SumGuy

回答

1

關閉AutoGenerateColumns

<my:DataGrid ItemsSource="{Binding ElementName=cbPickupDate, Path=SelectedItem.WeekData}" 
      AutoGenerateColumns="False"> 
    <my:DataGrid.Columns> 
     <my:DataGridTextColumn Binding="{Binding Path=ReqID}" Header="Request ID" /> 
     <my:DataGridTextColumn Binding="{Binding Path=LineID}" Header="Line ID" /> 
     <my:DataGridTextColumn Binding="{Binding Path=OrderID}" Header="Order ID" /> 
    </my:DataGrid.Columns> 
</my:DataGrid> 
+0

正確。謝謝 – SumGuy