WPF组合框已清除
我有一个DataTemplate,用于显示TabControl中类的一部分(它是TabItem的DataTemplate)。此DataTemplate具有多个组合框,可向用户显示各种属性值 我有一个组合框,允许用户在TabControl绑定到的对象之间切换 如果对象的属性不为null,则会在绑定到它们的组合框中选择它们(如预期的那样) 如果我切换到一个具有null属性的对象,那么组合框中没有选择任何项(同样,如预期的那样) 但是,如果我切换回属性中具有值的对象,则它根本不会显示 我不确定我做错了什么 这是我遇到问题的DataTemplate的XAML标记…我只想发布一个ComboBox,因为它们的行为方式都相同:WPF组合框已清除,wpf,data-binding,combobox,Wpf,Data Binding,Combobox,我有一个DataTemplate,用于显示TabControl中类的一部分(它是TabItem的DataTemplate)。此DataTemplate具有多个组合框,可向用户显示各种属性值 我有一个组合框,允许用户在TabControl绑定到的对象之间切换 如果对象的属性不为null,则会在绑定到它们的组合框中选择它们(如预期的那样) 如果我切换到一个具有null属性的对象,那么组合框中没有选择任何项(同样,如预期的那样) 但是,如果我切换回属性中具有值的对象,则它根本不会显示 我不确定我做错了
<DataTemplate x:Key="OptionalInfoTemplate">
<ScrollViewer>
<StackPanel>
<StackPanel Orientation="Horizontal" Margin="0,5,0,0">
<Label Content="Optional Item 1:"></Label>
<ComboBox ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=DataContext.OptionalItems}"
SelectedItem="{Binding Path=OptionalItem1}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}"></TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
<!-- more controls -->
</StackPanel>
</ScrollViewer>
</DataTemplate x:Key="OptionalInfoTemplate">
谢谢你的时间和帮助
-Frinny我意外地解决了这个问题。 我将组合框的ItemsSource属性的绑定从以下位置更改为:
"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=DataContext.OptionalItems}"
致:
-Frinny“它没有被正确显示。”——你到底看到了什么?它根本没有被显示
"{Binding RelativeSource={RelativeSource TemplatedParent},Path=DataContext.OptionalItems}"