私はここで困惑しています。ビジネスオブジェクトを保持する観測可能なコレクションがあります。 ListBoxのItemsSourceにバインドされています。私は自分のオブジェクトのXとYを更新しています。ランタイム中にUI上に正しく表示されています。しかし、問題がどこにあるのかここにあります。私はまた、テキストブロックのテキストプロパティで表示されるいくつかのデータをバインドして、データは初期値のみを表示します。テキストブロックテキストを何度変更しても、テキストブロックテキストは更新されません。ObservableCollectionのアイテムがビューを更新していません
ここにXAMLがあります。 XAMLに問題がある場合は、教えてください。私が言ったように、X/Y - Top/Leftバインディングはうまく動作し、変更されたときに更新されますが、DisplayDataにバインドされているTextBlockはそうではありません。
また、私のコレクションの私のビジネスオブジェクトは、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>
アンバカ、これを見ていただきありがとうございます。 1.はい。 2.チェックマークを付けてOKをクリックします。 3.まだ確認していません。 4.バインドエラーはありません。 この状況を再現するために小さなアプリケーションを作成しましたが、小さなアプリケーションは完全に機能します。だからあなたは絶対に正しいです、それは私のコードビハインドになければなりません。私はコードを精査して報告する。 もう一度ありがとうございます。 – Doug
あなたは正しいです。問題は私のコードビハインドにありました。 STUPD、STUPIDの問題。 Sub Newの後にDisplayDataを更新することはありませんでした。 DOH!私はあなたの時間を無駄にして申し訳ありません。 Doug – Doug
私はあなたが答えを見つけてうれしいです:)。おめでとう! – Anvaka