【问题标题】:WPF Combobox clearedWPF 组合框已清除
【发布时间】:2011-01-19 16:28:36
【问题描述】:

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

我有一个 ComboBox,它允许用户在 TabControl 绑定到的对象之间切换。

如果 Object 具有不为 null 的属性,则在绑定到它们的 ComboBoxes 中选择它们(如预期的那样)。

如果我切换到具有 null 属性的 Object,则 ComboBox 中没有选择任何项目(也如预期的那样)。

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

我不确定我做错了什么。

这是我遇到问题的 DataTemplate 的 XAML 标记...我只会发布 1 个 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">

感谢您的宝贵时间和帮助!

-弗林尼

【问题讨论】:

  • "显示不正确。" -- 你到底看到了什么?
  • 根本不显示

标签: wpf data-binding combobox


【解决方案1】:

我无意中解决了这个问题。 我将 ComboBox 的 ItemsSource 属性的绑定更改为:

"{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type TabControl}}, Path=DataContext.OptionalItems}"

收件人:

"{Binding RelativeSource={RelativeSource TemplatedParent},Path=DataContext.OptionalItems}"

-弗林尼

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-22
    • 2012-03-08
    • 1970-01-01
    • 2012-08-21
    • 2012-09-23
    • 1970-01-01
    相关资源
    最近更新 更多