Понятно, что я новичок в WPF, но я посмотрел и посмотрел и не могу найти решение этой проблемы.Как связать сборку с WPF: DataGridComboBoxColumn
У меня есть простой объект, например:
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>
Текст колонке отображаются только штраф, но выпадающий нет - значения не отображаются вообще. Ошибка связывания:
System.Windows.Data Error: 2 : Cannot find governing FrameworkElement or FrameworkContentElement for target element. BindingExpression:Path=Measures; DataItem=null; target element is 'DataGridComboBoxColumn' (HashCode=11497055); target property is 'ItemsSource' (type 'IEnumerable')
Как исправить это?
Благодаря
Ну, если это правда, то почему текстовые колонки работают, но столбец со списком Безразлично «т ?? – georgiosd
Если я правильно понимаю, это потому, что текстовые столбцы связаны непосредственно на свойство ItemsSource в DataGrid, в DataGrid.ItemsSource-> item-> Мера и ComboBox неявно связаны с DataContext из пункта, который не наследуется. DataGrid.ItemsSource-> Item-> DataContext-> Measures/Measure Вот как я это понял, по общему признанию, теперь вижу, что я не очень хорошо объясняю это. Возможно, кто-то может сделать это лучше меня. – ThomasAndersson
> Обратите внимание, что причина, по которой Binding работает, заключается в том, что внутренний код динамически устанавливает привязку DataGridColumn.Binding к DataGridCell.Content (http://blogs.msdn.com/b/vinsibal/archive/2009/04/07/) 5-random-gotchas-with-the-wpf-datagrid.aspx) – Maxence