У меня есть простой объект как:
class Item
{
....
public String Measure { get; set; }
public String[] Measures {get; }
}
Который я пытаюсь связать с DataGrid с двумя столбцами текста и столбцом поля комбинированного списка. Для столбца поля комбинированного списка свойство Measure является текущим выбором и Мерами возможные значения.
Мой XAML:
<DataGrid Name="recipeGrid" AutoGenerateColumns="False"
CellEditEnding="recipeGrid_CellEditEnding" CanUserAddRows="False"
CanUserDeleteRows="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Food" Width="Auto"
Binding="{Binding Food.Name}" />
<DataGridTextColumn Header="Quantity" IsReadOnly="False"
Binding="{Binding Quantity}" />
<DataGridComboBoxColumn Header="Measure" Width="Auto"
SelectedItemBinding="{Binding Path=Measure}"
ItemsSource="{Binding Path=Measures}" />
</DataGrid.Columns>
</DataGrid>
Столбец текста отображен очень хорошо, но поле комбинированного списка не - значения не отображены вообще. Ошибка привязки:
Система. Windows. Ошибка данных: 2: не Может найти управляющий FrameworkElement или FrameworkContentElement для целевого элемента. BindingExpression:Path=Measures; DataItem=null; целевым элементом является 'DataGridComboBoxColumn' (HashCode=11497055); целевым свойством является 'ItemsSource' (введите 'IEnumerable'),
Как я фиксирую это?
Проблема заключается в том, что столбцы не наследуют DataContext.
Подробнее см. Привязка в текстовом столбце сетки данных WPF