2016-08-15 3 views
1

им пытаются связать наблюдаемые коллекции (ключевые кадры), расположенных в элементах моей ListBox к ItemsSource моей DataTemplate (в наблюдаемой коллекции)XAML привязки ItemsSource внутри DataTemplate

<ListBox x:Name="lbTimeLines" 
DataContext="{Binding MainViewport,Source={StaticResource Locator}}" 
ItemsSource="{Binding AnimateableObjects}" SelectedIndex="{Binding selectedIndex}"> 
     <ListBox.ItemTemplate > 
         <DataTemplate DataType="{x:Type obj:ObjectSettings }"> 
          <cc:TimeLine x:Name="TL" Height="25" 
             ItemsSource="{Binding Path=KeyFrames}"<!-- here is the problem --> 
             CurrentFrame="{Binding LayerView.CurrentFrame,Source={StaticResource Locator},Mode=TwoWay}" 
             Width="{Binding LayerView.Globalwidth,Source={StaticResource Locator}}"> 
          </cc:TimeLine> 
         </DataTemplate> 
     </ListBox.ItemTemplate> 

однако это, кажется, приводит к ошибка

System.Windows.Data Error: 40 : BindingExpression path error: 'KeyFrames' property not found on 'object' ''TimeLineViewModel' (HashCode=2312607)'. BindingExpression:Path=KeyFrames; DataItem='TimeLineViewModel' (HashCode=2312607); target element is 'TimeLine' (Name='MainControl'); target property is 'ItemsSource' (type 'ObservableCollection`1')

не уверенны, почему, но он, кажется, ищет KeyFrames в ViewModel в Timeline вместо элементов ListBox

примечание: я использую такое же связывание с другой ListBox, это, однако, кажется, работает хорошо

<ListBox x:Name="lbLayers" 
DataContext="{Binding MainViewport,Source={StaticResource Locator}}" 
ItemsSource="{Binding AnimateableObjects}" SelectedIndex="{Binding selectedIndex}"> 
<ListBox.ItemTemplate> 
    <DataTemplate DataType="{x:Type obj:ObjectSettings }"> 
     <StackPanel > 
      <Label Content="{Binding Name}" Height="25" Width="180"></Label> 
     </StackPanel> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

+0

ничего плохого там. Ваш диагноз может быть неправильным. Я бы использовал такой инструмент, как Snoop или инспекторы пользовательского интерфейса 2015 года для изучения моделей представления и значений свойств элементов управления в этой части дерева. – Will

+0

спасибо за ответ, я обновил свой вопрос, проблема, похоже, исчезла:/not shure, что вызвало это в первую очередь – Drumstig

+0

Я настоятельно рекомендую вам удалить свое изменение и добавить его в качестве ответа ниже. После необходимого ожидания вы можете пометить его как решение. Обычно это делается в этой ситуации. – Will

ответ

0

в то время как я ждал ответа у меня есть изменить мой XAML, так что ключевой кадр будет быть привязан к скрытым ItemsControl и ItemsSource мой график был связан с ItemsControl ItemsSource

это позволило мне продолжить работу

<ListBox x:Name="lbTimeLines" DataContext="{Binding MainViewport,Source={StaticResource Locator}}" ItemsSource="{Binding AnimateableObjects}" SelectedIndex="{Binding selectedIndex}"> 
<ListBox.ItemTemplate > 
    <DataTemplate DataType="{x:Type obj:ObjectSettings }" > 
     <StackPanel Orientation="Horizontal"> 
      <ItemsControl x:Name="Testcontainer" ItemsSource="{Binding KeyFrames, Mode=TwoWay}" Visibility="Hidden" Width="0"> 
      </ItemsControl> 
      <cc:TimeLine Height="25" 
        ItemsSource="{Binding ElementName=Testcontainer, Path=ItemsSource,Mode=TwoWay}" 
        CurrentFrame="{Binding LayerView.CurrentFrame,Source={StaticResource Locator},Mode=TwoWay}" 
        Width="{Binding LayerView.Globalwidth,Source={StaticResource Locator}}"> 
      </cc:TimeLine> 
     </StackPanel> 
    </DataTemplate> 
</ListBox.ItemTemplate> 

после первого ответа я изменил мой код обратно на оригинал, но я не мог воспроизвести ошибку

Смежные вопросы