Я в тупике. У меня есть наблюдаемая коллекция, которая содержит бизнес-объекты. У меня это связано с ItemsSource ListBox. Я обновляю X и Y моего объекта, и он правильно отображается в пользовательском интерфейсе во время выполнения, так как он ограничен верхней и левой частью элемента. Но вот где проблема. Я также привязал некоторые данные для отображения в текстовом свойстве textblock, и данные отображают только начальное значение. Он никогда не обновляет текстовый блок Text независимо от того, сколько раз я его изменяю.
Вот XAML. Если вы видите проблему с XAML, пожалуйста, дайте мне знать. Как я уже сказал, привязка X / Y - верх / левый работает нормально и обновляется при изменении, а 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>