У меня есть ComboBox, который использует ItemTemplate, как показано ниже. Каким-то образом свойство Text текстового поля, определенного в шаблоне элемента, отключается от привязки и перестает обновляться при изменении выбранного элемента.
ComboBox.ItemsSource связан с DependencyProperty, который является списком объектов CatheterDefinition. ComboBox.SelectedItem привязан к DependencyProperty, который является единственным объектом CatheterDefinition.
<ComboBox
AutomationProperties.AutomationId="CatheterInfoModelFieldID"
VerticalAlignment="Center" HorizontalAlignment="Stretch"
ItemsSource="{x:Static PumpAndCatheter:CatheterInfoViewModel.CatheterModelDefinitions}"
SelectedItem="{Binding ElementName=UserControl, Path=ViewModel.SelectedCatheterModel, Mode=TwoWay, NotifyOnSourceUpdated=True}"
SourceUpdated="HandleModelSourceUpdated">
<ComboBox.ItemContainerStyle>
<!-- A style used to set the AutomationID based on the item goes here -->
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<!-- This line below is the location of the problem -->
<TextBlock Text="{Binding Converter={StaticResource CatheterModelDefinitionToStringConverter}}">
<!-- A style used to set the AutomationID based on the item goes here -->
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
У меня есть автоматический тест, который дает очень странное поведение (я видел такое же поведение несколько раз во время первоначальной разработки кода, но не смог воспроизвести его вручную) - Тест, который воспроизводит это, выбирает элемент из ComboBox затем переходит в другую часть приложения и выполняет некоторые действия, которые в конечном итоге сохраняют это изменение в модели данных. Когда тест возвращается к экрану с этим ComboBox, он пытается выбрать другой элемент из ComboBox. SelectedItem изменяется, и значения, которые он должен изменить, НО текст в ComboBox не изменяется - каким-то образом привязка к свойству Text текстового поля нарушается (или что-то) ... Привязка все еще выполняется ( преобразователь по-прежнему работает, когда выбор изменяется, и он преобразуется в правильное значение), но свойство text никогда не обновляется.
Мысли? (Я не могу привести пример этого, потому что это огромное приложение, и оно воспроизводимо только в одном тесте, о котором я знаю)