动态绑定到数据网格时的问题

本文关键字:问题 网格 数据网 数据 动态绑定 | 更新日期: 2023-09-27 18:08:56

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

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

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

我有一个显示Date对象列表的组合框。

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

这一切都工作得很好,因为我从组合框中选择了不同的选项,数据网格改变了它的itemssource。

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

任何帮助都是感激的,我对这个问题真的很挠头。

提前感谢,SumGuy .

动态绑定到数据网格时的问题

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

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