Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF组合框已清除_Wpf_Data Binding_Combobox - Fatal编程技术网

WPF组合框已清除

WPF组合框已清除,wpf,data-binding,combobox,Wpf,Data Binding,Combobox,我有一个DataTemplate,用于显示TabControl中类的一部分(它是TabItem的DataTemplate)。此DataTemplate具有多个组合框,可向用户显示各种属性值 我有一个组合框,允许用户在TabControl绑定到的对象之间切换 如果对象的属性不为null,则会在绑定到它们的组合框中选择它们(如预期的那样) 如果我切换到一个具有null属性的对象,那么组合框中没有选择任何项(同样,如预期的那样) 但是,如果我切换回属性中具有值的对象,则它根本不会显示 我不确定我做错了

我有一个DataTemplate,用于显示TabControl中类的一部分(它是TabItem的DataTemplate)。此DataTemplate具有多个组合框,可向用户显示各种属性值

我有一个组合框,允许用户在TabControl绑定到的对象之间切换

如果对象的属性不为null,则会在绑定到它们的组合框中选择它们(如预期的那样)

如果我切换到一个具有null属性的对象,那么组合框中没有选择任何项(同样,如预期的那样)

但是,如果我切换回属性中具有值的对象,则它根本不会显示

我不确定我做错了什么

这是我遇到问题的DataTemplate的XAML标记…我只想发布一个ComboBox,因为它们的行为方式都相同:

<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}"