gpt4 book ai didi

数据模板内的 XAML 绑定(bind)项目源

转载 作者:行者123 更新时间:2023-12-03 10:43:42 24 4
gpt4 key购买 nike

我试图将位于我的列表框元素中的可观察集合(关键帧)绑定(bind)到我的数据模板的项目源(可观察集合)

<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')



不知道为什么,但他似乎在时间线的 View 模型中寻找关键帧而不是列表框元素

注意:我在不同的列表框上使用了类似的绑定(bind),但这似乎工作正常
<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>

最佳答案

当我在等待答案时,我更改了我的 xaml,因此关键帧将绑定(bind)到隐藏的 itemscontrol,并且我的时间线的 itemssource 绑定(bind)到 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>

在第一个答案之后,我将代码改回原来的,但我无法重现错误

关于数据模板内的 XAML 绑定(bind)项目源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com