簡體   English   中英

WPF將IEnumerable綁定到具有DataTemplate的ListBox

[英]WPF Binding IEnumerable to ListBox with a DataTemplate

我正在嘗試將IEnumerable類UserList綁定到XAML中的ListBox,但是我無法解析該對象的名稱。 我的xaml代碼如下:

            <ListBox DockPanel.Dock="Left" x:Name="UserListBox" Width="400"
                     ItemsSource="{Binding Source={StaticResource userList}}"
                     ItemTemplate="{StaticResource UserListTemplate}">

            </ListBox>

我也在MainWindow.xaml.cs中實例化了userList,但是我想我做的事情不正確。 目的是讓ListBox從UserList中讀取並從該IEnumerable創建用戶列表。 我該如何解決?

public MainWindow()
    {
        InitializeComponent();
        DataConnection.CreateAndOpenDB();
        src.UserList userList = new src.UserList();


    }

StaticResource擴展無法解析局部變量。

創建一個如下所示的UserList屬性,並將Window的DataContext設置為this 如果希望在設置DataContext之后能夠添加或刪除元素,則UserList類應實現INotifyCollectionChanged接口。 它可以通過從ObservableCollection派生來實現。

public src.UserList UserList { get; } = new src.UserList();

public MainWindow()
{
    InitializeComponent();
    DataConnection.CreateAndOpenDB();
    // add elements to UserList here

    DataContext = this;
}

然后像這樣在XAML中編寫Binding:

ItemsSource="{Binding UserList}"

有關簡介,請參見數據綁定概述

暫無
暫無

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

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