У меня есть датагрид. Столбец таблицы данных представляет собой простой <DataGridTemplateColumn>
с его CellTemplate, содержащим <DataTemplate>
, который содержит <ComboBox>
, такой как
<my:DataGrid Name="dataGridMain" AutoGenerateColumns="False">
<my:DataGrid.Columns>
<my:DataGridTemplateColumn Header="Food" >
<my:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<ComboBox Name="comboDataTemplate"
Text="{Binding Path=Food,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
ItemsSource="{Binding Source={StaticResource resFoodLookups}}"
DisplayMemberPath="FoodName"
SelectedValuePath="FoodID" IsEditable="True" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
</my:DataGrid.Columns>
</my:DataGrid>
Все работает нормально. Каждый комбинированный список связан со статическим списком из-за оператора ItemsSource="{Binding Source={StaticResource resFoodLookups}}"
.
Но я требую, чтобы этот список менялся от строки к строке.
То есть: каждый раз, когда пользователь вводит новую запись в списке комбинированного списка в одной строке, я хочу, чтобы она была доступна в выделении в следующей строке.
По сути, я хочу создавать новый список для пользователя каждый раз, когда пользователь вставляет новое слово в поле со списком в любой из строк. (Комбо-бокс доступен для редактирования).
Теперь я могу подключить «ItemsSource = ...» во время выполнения, но я могу сделать это только один раз, поэтому <DataTemplate>
распространяет «один и тот же» список на «все» выпадающие списки на «все» строки.
Я думаю, что мне нужно менять свойство ItemsSource = ... для каждого объекта отдельно в каждом комбинированном ящике, который создается в памяти после того, как их создал DataTemplate, но я понятия не имею, как это сделать .