突然、以前はなかったリストボックスのバインドに問題が発生しました。
私はいくつかのデータを含む 2 つの観察可能なコレクションを持つ ViewModel を持っています。両方のリストが正しく設定されています。
MainPage() コンストラクター内
DataContext = App.ViewModel;
InitializeComponent();
ViewModel のリスト:
public ObservableCollection<Saloon> Saloons { get { return ... } set { ... } }
public ObservableCollection<TTSaloon> TTList { get { return ... } set { ... } }
最初のリストをマップ コントロールにバインドし、リスト内の「場所」プロパティにバインドされた画鋲を取得できます。
<my:Map DataContext="{Binding Saloons}"....>
<my:Pushpin Location="{Binding Location}"/>...</my:Map>
上記は正常に動作します。しかし、次のように他のコレクション(TTList)にバインドする必要があるリストボックスもあります:
<ListBox ItemsSource="{Binding TTList}" DataContext="{Binding}" Name="listBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=CustomerName}" Foreground="White" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
しかし、これはまったく機能しません。私はさまざまなことを試しました:
コード ビハインドでの ItemSource の設定
ListBox から DataContext を削除する
バインディング パスを Listname.Property に変更しました
要素の DataContexts をコード ビハインドの特定のリストに設定します。
InitializeComponent() の後に DataContext を設定する
ここで何が欠けているのか、デバッガーも警告していません。フィールド「CustomerName」は存在し、コンソールに出力されます。
編集:それはピボットアプリであり、リストボックスが影響を与える可能性がある場合、ピボットアイテム2にあります。