-1

2 つの ObservableCollections を 1 つの ListBox にバインドする方法を知っている人はいますか? これら 2 つの ObservableCollections には両方とも、ListBox に表示するプロパティ文字列「name」があります。 ここに画像の説明を入力

ListBox の上部領域に ObservableCollection1 アイテムを表示し、ListBox の下部領域に ObservableCollection2 アイテムを表示したいのですが、その方法を教えてください。

<ListBox x:Name="m_CtrlMediaList" Grid.Column="2" AllowDrop="True" SelectionMode="Extended">
    <ListBox.ItemsSource>
        <CompositeCollection>
            <CollectionContainer Collection="{Binding directorys}"/>
            <CollectionContainer Collection="{Binding files}"/>
        </CompositeCollection>
    </ListBox.ItemsSource>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Vertical">
                <TextBlock Text="{Binding name, Mode=OneWay}" FontWeight="Bold" FontSize="14"/>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

データは次のようになります: class ElementFile { ... string name (get;set;} ...

}
 class ElementDirectory
{
...
      string name (get;set;}
 ...
    public ObservableCollection<ElementDirectory> directorys { get; set; }
    public ObservableCollection<ElementFile> files { get; set; }
...
}

「名前」を表示できないのはなぜですか?

4

1 に答える 1

0

複合コレクションは、あなたが探しているものです。

于 2012-09-22T10:45:33.313 に答える