簡體   English   中英

如何在動態創建的選項卡項中顯示列表框中的項目

[英]How to display items inside listbox in dinamically created tab item

我將數據存儲在我的存儲庫 class 的 IGroupping 字段中。 我想為這個集合的每個組創建選項卡項,在列表框中顯示它的項目。

這是我創建標簽項的代碼:

       foreach (var group in repository.Products)
            {   
                var tab = new MyTabItem();
                tab.Header = group.Key;
                tab.Products = group.AsEnumerable().ToList();
                tab.FontSize = 16;
                TabControlProducts.Items.Add(tab);
            }
            TabControlProducts.SelectedIndex = 0;

這是我的 xaml 文件的一部分:

<TabControl Grid.Row="1" Grid.Column="1" x:Name="TabControlProducts">
                    <TabControl.ContentTemplate>
                        <DataTemplate>
                            <ListBox FontSize="16" ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:MyTabItem}}, Path=Products}" Visibility="Visible">
                                <ListBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="{Binding Path=Code.MainGroup}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.MainForm}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.SubForm}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.Finishing}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.MaterialGroup}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.MaterialSort}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.Attest}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.Sizing}"></TextBlock>
                                            <TextBlock Text="{Binding Path=Code.SubSizing}"></TextBlock>
                                        </StackPanel>
                                    </DataTemplate>
                                </ListBox.ItemTemplate>
                            </ListBox>
                        </DataTemplate>
                    </TabControl.ContentTemplate>
                </TabControl>

以及 MyTabItem class 的聲明:

public class MyTabItem : TabItem
{
    public List<Product> Products;
}

現在我在每個選項卡項中都顯示了列表框,但它們是空的

直接綁定到您的產品 class 並讓 TabControl 將每個產品包裝在 TabItem 中可能更容易。

        foreach (var group in repository.Products)
        {
            TabControlProducts.Items.Add(group);
        }

        TabControlProducts.SelectedIndex = 0;

然后是 xaml

    <TabControl Grid.Row="1" Grid.Column="1" x:Name="TabControlProducts">
        <TabControl.Resources>
            <Style TargetType="TabItem">
                <Setter Property="Header" Value="{Binding Key}"/>
            </Style>
        </TabControl.Resources>
        <TabControl.ContentTemplate>
            <DataTemplate>
                <ListBox FontSize="16" ItemsSource="{Binding .}" Visibility="Visible">
                    itemtemplate here...
                </ListBox>
            </DataTemplate>
        </TabControl.ContentTemplate>
    </TabControl>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM