Проблема привязки DataGridComboBoxColumn.ItemsSource

У меня есть 3 таблицы: Элемент - который является DataContext - он имеет столбец навигации Group Group - имеет столбец навигации Category.

Я хочу иметь в DataGrid оба (Категория и Столбцы группы), и когда я выбираю категорию, она должна отображать в группе столбцов только Category.Groups.

Вот код, над которым я работаю:


    

        
        


        

        
        
            
                
                    
                        
                            
                                
                            
                        
                    
                
            
        

        
        
        

    

Обновить

Вы бы сказали, что проблема в том, что свойство ItemsSource не может быть установлено в нестатическое связывание? Я так подозреваю, потому что даже я установил ItemsSource в{Binding} сDummyConverter это неостановка в преобразователе; и в категории ComboBox работает нормально.

Ответы на вопрос(2)

ItemSource столбца в коллекцию объектов в контексте данных окна. Я, должно быть, попробовал 10 разных способов иничего не сработало пока я не нашелэтот ответ

Хитрость заключается в том, чтобы определитьCollectionViewSource вне сетки, а затем ссылаться на нее внутри сетки, используяStaticResource, Например,

<window.resources>
    <collectionviewsource x:key="ItemsCVS" source="{Binding MyItems}">
</collectionviewsource></window.resources>
<!-- ... -->
<datagrid itemssource="{Binding MyRecords}">
    <datagridcomboboxcolumn header="Column With Predefined Values" itemssource="{Binding Source={StaticResource ItemsCVS}}" selectedvaluebinding="{Binding MyItemId}" selectedvaluepath="Id" displaymemberpath="StatusCode">
</datagridcomboboxcolumn></datagrid>
 Ahmed Mohammed11 окт. 2018 г., 22:28
спасибо работает как по волшебству
Решение Вопроса

так как они никогда не добавляются в визуальное дерево. звучит немного странно, но взгляните наVince»блог сЭто хороший пример визуального оформления. как только сетка нарисована, ячейки имеют контекст данных, и вы можете установить в них источник элементов комбинированных блоков, используя обычные привязки (не статические ресурсы ..)

Вы можете получить доступ к источнику элементов комбинированного списка следующим образом:

<dg:datagridcomboboxcolumn>
   <dg:datagridcomboboxcolumn.editingelementstyle>
      <style targettype="ComboBox">
         <Setter Property="ItemsSource" Value="{Binding Path=MyBindingPath}" />
      </style>
   </dg:datagridcomboboxcolumn.editingelementstyle>
</dg:datagridcomboboxcolumn>

ПосмотриВот а такжеВот для некоторого кода. Вам также нужно будетустановить источник элементов для элемента без редактирования как в этомсообщение

 newman06 июн. 2011 г., 20:40
Как заставить это работать для .NET 4.0 Datagrid? Винс»Блог, кажется, устарел.
 William10 мая 2013 г., 23:55
не должен»это также работает, только чтобы предназначаться для определенного ElementName, у которого есть DataContext?
 Nps29 дек. 2012 г., 22:40
Я использовал тот же подход, но источник данных неКажется, т связывает колонку. Я вижу пустой комбинированный список в DataGrid
 Aran Mulholland07 июн. 2011 г., 05:11
Я нене думаю, что датагридРеализация ComboColumn изменилась в выпуске .net 4
 Aran Mulholland31 дек. 2012 г., 01:24
Забросьте на него debugConverter и посмотрите, сработают ли когда-нибудь привязки (wpftutorial.net/DebugDataBinding.html)

Ваш ответ на вопрос