你可以看我的解決方案here的完整結構,但這裏的快速參考:WPF數據綁定:如何將數據綁定到一個集合?
- 我在
Entities
類庫做了一個類Account.cs
。 - 我做了一個類庫
Core
與AccountController.cs
類從Sql Server表中獲取 帳戶。 - 我在
Gui.Wpf.Controllers
類庫中做了AccountWindowController.cs
類的類。 它包含List<Account> Accounts
屬性,並要求AccountController
中的GetAccounts()
方法填充該列表。 - 最後,我在
Gui.Wpf
類庫中做了AccountWindow.xaml
。此WPF窗口 包含名爲AccountsListBox
的ListBox
。
我想數據將列表框從AccountWindow
綁定到AccountWindowController
列表中,但我不知道如何。下面是相關的代碼:
AccountWindow.xaml
<Window x:Class="Gui.Wpf.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controller="clr-namespace:Gui.Wpf.Controllers"
Title="Accounts"
Width="350"
MinWidth="307"
MaxWidth="400"
Height="500" >
<Window.Resources>
<controller:AccountWindowController
x:Key="AccountsCollection" />
</Window.Resources>
<Grid>
<ListBox
Name="AccountsListBox"
Margin="12,38,12,41"
ItemsSource="{StaticResource ResourceKey=AccountsCollection}" />
</Grid>
</Window>
AccountWindow.xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
new Gui.Wpf.Controllers.AccountWindowController();
}
}
AccountWindowController.cs
public class AccountWindowController
{
//This event is handled in the AccountController.cs
//that sets the Accounts property defined below.
public event EventHandler GetAccounts;
private List<Account> accounts;
public List<Account> Accounts
{
get
{
GetAccounts(this, new EventArgs());
return accounts;
}
set
{
this.accounts = value;
}
}
//Constructor
public AccountWindowController()
{
new AccountController(this);
}
}
謝謝你的幫助。
感謝您的回答馬修。更改代碼導致編譯錯誤,並顯示以下錯誤消息:Error解析標記擴展時遇到類型爲「System.Windows.StaticResourceExtension」的未知屬性「路徑」。我應該改變別的東西嗎? – Boris 2010-11-23 19:04:10
道歉,我錯過了一些。請再試一次。 – 2010-11-23 20:34:44