C# 动态绑定到datagrid时出现的问题

C# 动态绑定到datagrid时出现的问题,c#,wpf,data-binding,datagrid,itemsource,C#,Wpf,Data Binding,Datagrid,Itemsource,好吧,我有个奇怪的小问题,希望有人能帮我 要设置场景,我首先有一个对象: public class Date { public DateTime _WeekDate; public ICollectionView _WeekData; } 我有一个显示日期对象列表的组合框 <ComboBox Name="cbPickupDate" ItemsSource="{Binding Path=PickupDates}" DisplayMemberPath="WeekDate" /

好吧,我有个奇怪的小问题,希望有人能帮我

要设置场景,我首先有一个对象:

public class Date
{
    public DateTime _WeekDate;
    public ICollectionView _WeekData;
}
我有一个显示日期对象列表的组合框

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

好的,现在我使用所选日期对象的集合为我的datagrid提供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>

这一切都非常好,因为我从组合框中选择了不同的选项,datagrid更改了它的itemssource

但是,datagrid为我的WeekData项中的每个值在我指定的值之上添加了一个额外的列。因此,使用我展示的示例,它将显示3列reqID、lineID和OrderID,以及另外3列完全相同的内容,总共6列

谢谢你的帮助,我对这件事真是摸不着头脑

提前感谢,,
Sumgay.

您是否尝试将DataGrid的属性设置为false?我想这会解决你的问题。

关闭
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>


我假设您有autogeneratecolumns=false:)哦,亲爱的,我亲爱的,当您知道如何操作时,一切都很简单。这确实是问题所在,谢谢。