我想有這樣的ListBox布局:

但目前我有這個:
我的 xml 代碼如下所示:
<ListBox DockPanel.Dock="Top" Grid.Column="1" Grid.Row="1" Height="200" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListBoxItem Width="325" Content="Visual Basic"/>
<ListBoxItem Width="325" Content="Silverlight"/>
<ListBoxItem Width="325" Content="ASP.NET"/>
<ListBoxItem Width="325" Content="WCF"/>
<ListBoxItem Width="325" Content="Web Services"/>
<ListBoxItem Width="325" Content="Windows Service"/>
</ListBox>
那么如何在 a 中創建兩列ListBox并向它們添加資料?
uj5u.com熱心網友回復:
這里有一個靈感,你可以如何展示你對船的熱情。這是代碼隱藏中的一個簡單示例,因為我不知道您對 WPF 的了解有多深。
首先,創建一個資料型別,它表示具有 aTitle和一個Authors屬性的書。
public class Book
{
public Book(string title, IEnumerable<string> authors)
{
Title = title;
Authors = authors;
}
public string Title { get; }
public IEnumerable<string> Authors { get; }
}
然后在視窗的代碼隱藏中,為您的書籍公開一個集合并在建構式中對其進行初始化。設定DataContext為this,因此系結將視窗作為源并找到Books屬性。
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
Books = new List<Book>
{
new Book("Boaty McBoatface", new[] { "Byron Barton" }),
new Book("Boat life", new[] { "Jeremy Boats", "Bud Shipman" }),
new Book("Boat Boys", new[] { "Will Buy Boats" }),
};
DataContext = this;
}
public IEnumerable<Book> Books { get; }
}
現在,創建一個ListView將其系結ItemsSource到Books屬性的。請記住,系結將決議視窗上的屬性,因為我們將其設定為DataContext.
將a添加
這是一個或多或少簡單的例子。您遲早應該開始學習 MVVM 設計模式,以改進用戶界面與資料和業務邏輯的分離。要將此示例遷移到 MVVM,您需要將 books 集合屬性移動到您將設定為DataContext例如視窗的視圖模型。
進一步閱讀:
- 網格視圖概述
- 資料模板概述
- 具有模型-視圖-視圖模型設計模式的 WPF 應用程式
順便說一句,通常 aListBox沒有對列的內置支持, aListView確實 through GridView。甚至還有一個功能更強大但同時也很復雜的表格資料控制元件,DataGrid如果您需要的話。繼續劃船!
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/496855.html
