2016-09-21 2 views
0

Хорошо, у меня есть относительно сложная проблема. Я пытаюсь создать окно в WPF. Основным элементом в этом окне является DataGrid. Каждая из строк в DataGrid имеет элемент DetailsPane, который я устанавливаю с помощью DataGrid.RowDetailsTemplate. В зависимости от определенных значений, специфичных для строки, мне нужна панель сведений для отображения разных элементов. Для этого я поместил ContentControl в корень DataTemplate и использовал стиль с DataTriggers, чтобы установить его свойство Content. Теперь внутри один из этих Setters - это ComboBox. Этот ComboBox должен иметь свой ItemsSource, привязанный к списку, который хранится в свойстве зависимости на уровне Window (потому что его тот же список независимо от строки). Ниже приведен упрощенный вариант того, что я смотрю на:Связывание в Style Setter в DataTemplate WPF

<Window> 
    ... 
    <DataGrid> 
     ... 
     <DataGrid.RowDetailsTemplate> 
      <DataTemplate> 
       <ContentControl> 
        <Style TargetType="ContentControl"> 
         <Style.Triggers> 
          <DataTrigger Binding="{Binding RowSpecificBooleanProperty}" Value="False"> 
           <Setter Property="Content"> 
            <Setter.Value> 
             ... 
             <ComboBox ItemsSource={HowDoIBindThisToTheWindowProperty}/> 
            </Setter.Value> 
           </Setter> 
          </DataTrigger> 
         </Style.Triggers> 
        </Style> 
       </ContentControl> 
      </DataTemplate> 
     </DataGrid.RowDetailsTemplate> 
    </DataGrid> 
</Window> 

Так что я пытаюсь выяснить, как связать ItemsSource этого ComboBox свойства зависимостей окна верхнего уровня. Энди подумает, как это сделать?

EDIT:

я говорил об этом раньше, но я уже пробовал использовать {RelativeSource AncestorType = Window} и ELEMENTNAME в связывании. В обоих случаях список в ComboBox пуст во время выполнения.

+0

RelativeSource (= Окно) (http://stackoverflow.com/questions/84278/how-do-i-use-wpf-bindings-with-relativesource) или ElementName используются в связывании обычно – ASh

ответ

0
ItemsSource="{Binding WhateverList, RelativeSource={RelativeSource AncestorType=Window}}" 
+0

К сожалению, но Я уже пробовал это. Я должен был поставить это в вопросе, я обновил его. –