【问题标题】:C# WPF show multible tables on one listboxC# WPF 在一个列表框上显示多个表
【发布时间】:2018-01-23 11:35:57
【问题描述】:

我有一个想法,将数据库中的多个表绑定到一个listbox,但我不知道该怎么做。我有 3 个来源,名为 Boozes、Juices 和 Snacks。现在我在列表框中只显示了 Boozes 表。

我的MainWindow.Xaml 代码:

 <ListBox Name="BoozeList" ItemsSource="{Binding Boozes}"
             Margin="10,124,0,10"
             HorizontalAlignment="Left"
             ScrollViewer.VerticalScrollBarVisibility="Visible"
              Width="233" Background="#FF79DCFA" BorderBrush="#FF0040FF">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBlock Text="{Binding Path=Name}" />
                    <TextBlock Text="{Binding Path=UnitPrice}" />

                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
        <ListBox.Resources>
            <Style TargetType="Border">
                <Setter Property="CornerRadius" Value="15"/>
            </Style>
        </ListBox.Resources>
    </ListBox>

【问题讨论】:

  • 将 3 个表合并为一个(饮料数据表或 IEnumerable),绑定它。

标签: c# wpf visual-studio listbox


【解决方案1】:

将您的 itemssource 设置为复合集合:

<CollectionViewSource x:Key="BoozesCollection" Source="{Binding Boozes}"/>
<CollectionViewSource x:Key="JuicesCollection" Source="{Binding Juices}"/>
<CollectionViewSource x:Key="SnacksCollection" Source="{Binding Snacks}"/>

<CompositeCollection>
    <CollectionContainer Collection="{Binding Source={StaticResource BoozesCollection}}"/>
    <CollectionContainer Collection="{Binding Source={StaticResource JuicesCollection}}"/>
    <CollectionContainer Collection="{Binding Source={StaticResource SnacksCollection}}"/>
</CompositeCollection>

【讨论】:

  • 是否有可能获得更好的解释如何实现它。我无法让它以任何方式工作。
  • 您在 中定义了 3 个 collectionviewsources,然后将复合集合代码放入 composite collection sn-p here .ItemsSource>。有意义吗?
【解决方案2】:

只需将三者合并为一张表并绑定即可。

dtAll.Merge(dtOne);
dtAll.Merge(dtTwo);
dtAll.Merge(dtThree);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多