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