好的我有一个奇怪的小问题,希望有人可以帮助我。
要设置场景,我首先要有一个对象:
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>
这一切都很好用,因为我从组合框中选择了不同的选项,datagrid改变了它的itemssource。
但是,datagrid会在我指定的WeekData项目中为每个值添加一个额外的列。因此,使用我展示的示例,它将显示3列reqID,lineID和OrderID以及3列完全相同的内容,因此共有6列。
任何帮助都表示赞赏,我真的很想不起这个。
提前致谢, SumGuy。
答案 0 :(得分:1)
您是否尝试将DataGrid的属性AutoGenerateColumns设置为false?我想这会解决你的问题。
答案 1 :(得分: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>