Я здесь. У меня есть наблюдаемая коллекция, которая содержит бизнес-объекты. Я связал его с ItemsSource ListBox. Я обновляю X и Y моего объекта, и он отображается корректно в пользовательском интерфейсе во время выполнения, поскольку он связан с верхним и левым элементом. Но вот здесь проблема. Я также связал некоторые данные, которые будут отображаться в текстовом свойстве textblock, и данные будут отображать только начальное значение. Он никогда не обновляет текстовый блок Text независимо от того, сколько раз я его меняю.Элементы в ObservableCollection, не обновляющие вид
Это XAML. Если вы видите проблему с XAML, пожалуйста, дайте мне знать. Как я уже сказал, привязка X/Y - Top/Left работает отлично и обновляется при изменении, TextBlock, привязанный к DisplayData, не работает.
Кроме того, мой бизнес-объект в моей коллекции реализует INotifyPropertyChanged.
Я попытаюсь сделать небольшую демонстрацию, чтобы воспроизвести ее, если ответ не может быть дан просто, глядя на XAML.
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="614" Width="674">
<ListBox Name="PlottingBox" Background="White">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=DisplayData}" />
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Template>
<ControlTemplate TargetType="{x:Type ListBox}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Canvas IsItemsHost="True" />
</Border>
</ControlTemplate>
</ListBox.Template>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Canvas.Left" Value="{Binding Path=PlotX}" />
<Setter Property="Canvas.Top" Value="{Binding Path=PlotY}" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Anvaka, Спасибо, что посмотрели на это. 1. Да. 2. Проверено и ОК. 3. Пока не проверял. 4. Отсутствие ошибок привязки. Я создал небольшое приложение, чтобы воспроизвести эту ситуацию, и небольшое приложение работает отлично. Таким образом, вы абсолютно правы, он ДОЛЖЕН быть в моем коде. Я разберу код и отчитаюсь. Еще раз спасибо. – Doug
Анвака, ты был прав. Вопрос был в моем коде. Проблема STUPD, STUPID. Я никогда не обновлял DisplayData после Sub New. DOH! Извините, если я потратил ваше время. Doug – Doug
Я рад, что вы нашли ответ :). Поздравления! – Anvaka