簡體   English   中英

WPF中繼器喜歡項目控制

[英]wpf repeater like items control

我有一個WPF應用程序,我想要中繼器之類的功能。 我指的是以下類似控件Wpf轉發器帖子,所以我有類似於ItemsControl的項目源的列表。 我要顯示的內容如下:

父內容1
子內容1。

父內容2
子內容2。

等等...

因此,父級內容1和父級內容2是Data對象內部的名稱屬性,而子級content1和子級Content2就像數據對象內部的value屬性。

這是我創建的示例應用程序,但出現了xaml解析異常,提示“向類型'System.Windows.Controls.UIElementCollection類型的集合添加值”引發了異常”。 這只是部分xaml。 我是項目控件的新手。 請幫忙。

 <ItemsControl
                ItemsSource="{Binding Path=AllItems}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Label Content="{Binding names}"></Label>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" Margin="10">
                        <TextBlock
                            Text="{Binding}"></TextBlock>
                        </StackPanel>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
            </ItemsControl>

Mainwindow.cs

 public partial class MainWindow : Window
        {
            public List<Data> AllItems { get; set; }
            public MainWindow()
            {
                InitializeComponent();
                this.DataContext = this;
                Populate();
            }

        public void Populate()
        {
        AllItems = new List<Data>();
        Data data = new Data();
        data.names = "Parent Content1";
        data.value = "Child Content1";
        AllItems.Add(data);
        Data data1 = new Data();
        data1.names = "Parent Content2";
        data1.value = "Child Content2";
        AllItems.Add(data1);
       }        
        }
        public class Data
        {
            public string names { get; set; }
            public string value { get; set; }

        }

無需設置ItemsPanelTemplate ,因為默認情況下它使用StackPanel 這里的問題是因為您還在ItemsPanelTemplate添加了TextBlock 刪除它,然后在ItemTemplate添加正確的數據格式。

<ItemsControl
    ItemsSource="{Binding Path=AllItems}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <TextBlock Text="{Binding names}"></TextBlock>
                <TextBlock Text="{Binding value}"></TextBlock>
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

暫無
暫無

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

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