WPF Combobox очищен - PullRequest
       18

WPF Combobox очищен

1 голос
/ 19 января 2011

У меня есть DataTemplate, который я использую для отображения части класса в TabControl (это DataTemplate для TabItem).Этот DataTemplate имеет несколько ComboBox, которые отображают различные значения свойств для пользователя.

У меня есть ComboBox, который позволяет пользователю переключаться между объектами, с которыми связан TabControl.

Если объект имеет свойствакоторые не равны NULL, то они выбираются в привязанных к ним комбинированных списках (как и ожидалось).

Если я переключаюсь на объект с нулевым свойством, то в ComboBox не выбирается элемент (также, как и ожидалось).

Однако, если я переключаюсь обратно на Объект, у которого есть значение в свойстве, он вообще не отображается.

Я не уверен, что яя делаю что-то не так.

Вот разметка XAML для DataTemplate, с которой у меня проблемы ... Я собираюсь опубликовать только 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">

Спасибо за ваше время и помощь!

-Frinny

1 Ответ

0 голосов
/ 19 января 2011

Я исправил эту проблему случайно.Я изменил привязку для свойства ItemsSource в ComboBox с:

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

На:

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

-Frinny

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...