Проблема при динамическом связывании с сеткой данных - PullRequest
0 голосов
/ 19 сентября 2011

ОК, у меня странная маленькая проблема, я надеюсь, что кто-то может мне помочь.

Чтобы установить сцену, у меня прежде всего есть объект:

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 поверх тех, которые я указал. Таким образом, используя показанный мной пример, он отобразит 3 столбца reqID, lineID и OrderID и еще 3 столбца с одинаковыми значениями, итого 6.

Любая помощь приветствуется, я действительно почесал голову над этим.

Заранее спасибо, SumGuy.

Ответы [ 2 ]

1 голос
/ 19 сентября 2011

выключить 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>
1 голос
/ 19 сентября 2011

Вы пытались установить для свойства AutoGenerateColumns вашей DataGrid значение false? Я думаю, что это решит вашу проблему.

...