簡體   English   中英

WPF:Listview中的擴展器綁定

[英]WPF: Expander binding in Listview

我想使用帶有一些信息的擴展器進行ListView。 因此,我編寫了這段代碼。 我不確定像這樣的綁定擴展器是正確的。 我只是嘗試像ListViewItem那樣進行綁定,但是當我嘗試擴展器時根本無法工作。 這是我的代碼。

XAML:

    <Grid Grid.Row="2">
        <ListView x:Name="lv">
            <ListView.Template>
                <ControlTemplate>
                    <HeaderedItemsControl>
                        <ItemsPresenter/>
                    </HeaderedItemsControl>
                </ControlTemplate>
            </ListView.Template>

            <ListView.ItemTemplate>
                <DataTemplate DataType="{x:Type local:LogBase}">
                    <Expander Grid.Column="0" HorizontalAlignment="Center">
                        <Expander.HeaderTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal"> <!-- why this code is not wokring...? -->
                                    <TextBlock Text="{Binding No}"/>
                                    <TextBlock Text="{Binding Timestamp}"/>
                                    <TextBlock Text="{Binding Type}"/>
                                </StackPanel>
                            </DataTemplate>
                        </Expander.HeaderTemplate>
                    </Expander>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>

后面的代碼:

public partial class MainWindow : Window
{
    public List<LogBase> logs { get; set; }

    public MainWindow()
    {
        InitializeComponent();

        logs = new List<LogBase>();

        logs.Add(new LogBase()
        {
            No = "1",
            Timestamp = "123456789",
            Type = "Tcp"
        });

        logs.Add(new LogBase()
        {
            No = "2",
            Timestamp = "123456789",
            Type = "Tcp"
        });

        logs.Add(new LogBase()
        {
            No = "3",
            Timestamp = "123456789",
            Type = "Tcp"
        });


        lv.ItemsSource = logs;

        DataContext = this;
    }

}

public class LogBase
{
    public string No { get; set; }
    public string Timestamp { get; set; }
    public string Type { get; set; }
}

為了更好地理解,我捕獲了我想要的東西

現在我程序的情況

如果您有任何意見,請為我評論!

您還需要綁定標頭以設置正確的HeaderTemplateDataContext 這是通過Header="{Binding HeaderSource}" 在您的情況下,只需使用Header="{Binding}"直接綁定到該項目:

<Expander Header="{Binding}>

之后,您的代碼將完美運行。

暫無
暫無

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

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