Wpf 组合框项DataTemplate内的资源绑定
我正在尝试将组合框绑定到viewmodel上的项目列表(ObservableCollection)。如果我在我的视图中使用类似的内容:Wpf 组合框项DataTemplate内的资源绑定,wpf,xaml,data-binding,combobox,Wpf,Xaml,Data Binding,Combobox,我正在尝试将组合框绑定到viewmodel上的项目列表(ObservableCollection)。如果我在我的视图中使用类似的内容: <ComboBox ItemsSource="{Binding Path=Teams}" DisplayMemberPath="TeamName" /> 一切都好。但是,如果我使用同一个组合框,并将其作为另一个用作列表框的项目模板的模板上的datatemplate的一部分,则列表中不会显示任何内容。伪代码示例: <DataTemplate
<ComboBox ItemsSource="{Binding Path=Teams}" DisplayMemberPath="TeamName" />
一切都好。但是,如果我使用同一个组合框,并将其作为另一个用作列表框的项目模板的模板上的datatemplate的一部分,则列表中不会显示任何内容。伪代码示例:
<DataTemplate x:Key="test">
<TextBlock Text="Team:" />
<ComboBox ItemsSource="{Binding Path=Teams}" DisplayMemberPath="TeamName" />
</DataTemplate>
我想也许我需要添加一个相对的来源,所以我尝试了,但没有运气。我还尝试为我的UserControl指定一个名称,并将其用作combobox绑定中的ElementName。我无法想象这会像我做的那么难。我可能错过了一些明显的东西。有人能帮忙吗?如果需要的话,我可以提供更多的细节,我只是现在时间紧迫
谢谢,丹尼斯,也许你忘了路径中的
DataContext
?如果使用RelativeSource
以框架元素为目标,而不再使用DataContext
,那么应该这样做:
{Binding DataContext.Teams,RelativeSource={RelativeSource AncestorType=ListBox}
另外,如果您在绑定方面遇到问题,它们会告诉您所有需要知道的信息。对于UWP,我是这样得到的
<GridView x:Name="abc" ItemsSource="{Binding Path=DataContext.Companies,RelativeSource={RelativeSource Mode=TemplatedParent}}"></GridView>
运行时VS中的输出窗口中是否存在任何绑定错误?GamesCV集合中的项目是否具有名为Teams
的属性?您的DataContext是否正常?您的GamesCV是一个(可观察的)集合,该集合中的一个项目(GameCV)具有“团队”pblic属性,该属性是一个(可观察的)具有公共属性TeamName的项目集合?试着先检查一下这个。您可以先添加GameCV的另一个属性来检查测试数据模板的DataContext(?GameName?),明白了!谢谢,H.B.-我想应该很简单。
<GridView x:Name="abc" ItemsSource="{Binding Path=DataContext.Companies,RelativeSource={RelativeSource Mode=TemplatedParent}}"></GridView>