0

突然、以前はなかったリストボックスのバインドに問題が発生しました。

私はいくつかのデータを含む 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にあります。

4

2 に答える 2

0

ObservableCollectionが値を「設定」しているときに、OnPropertyChangedを発生させていますか?

(ObservableCollectionは、「追加」、「削除」、または「クリア」を実行するときにのみ、それ自体で変更を発生させます)

于 2012-04-30T17:13:06.143 に答える
0

Yout 前景は白に設定されています。白い背景に白い文字でアイテムが見えないだけでしょうか?

于 2012-04-30T14:45:07.387 に答える