0

OK私は奇妙な小さな問題を抱えています。誰かが私を助けてくれることを願っています。

シーンを設定するには、まずオブジェクトを用意します。

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

Date オブジェクトのリストを表示するコンボボックスがあります。

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

では、選択した日付オブジェクトのコレクションを取得して、データグリッドのアイテムソースを提供します。

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

コンボボックスからさまざまなオプションを選択すると、データグリッドがアイテムソースを変更するため、これはすべて非常にうまく機能します。

ただし、データグリッドは、指定したものの上に、WeekData アイテム内の値ごとに追加の列を追加します。したがって、私が示した例を使用すると、reqID、lineID、OrderID の 3 つの列と、まったく同じものの 3 つの列が表示されるため、合計で 6 つになります。

どんな助けでも大歓迎です、私は本当にこれについて頭を悩ませています。

前もってありがとう、SumGuy。

4

2 に答える 2

1

DataGridのプロパティAutoGenerateColumnsを false に設定しようとしましたか? それがあなたの問題を解決すると思います。

于 2011-09-19T15:04:38.443 に答える
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>
于 2011-09-19T15:05:37.527 に答える