Вы можете прочитать полную структуру моего решения here, но вот краткий справочник:WPF Связывание данных: как привязать данные к коллекции?
- Я сделал класс
Account.cs
в библиотекеEntities
класса. - Я создал библиотеку классов
Core
с классомAccountController.cs
, который получает учетные записи из таблиц сервера Sql. - Я сделал класс
AccountWindowController.cs
в библиотеке классовGui.Wpf.Controllers
. Он содержит имуществоList<Account> Accounts
и требует, чтобыGetAccounts()
вAccountController
, чтобы заполнить этот список. - Наконец, я сделал
AccountWindow.xaml
в библиотеке классовGui.Wpf
. Это окно WPF содержитListBox
, названноеAccountsListBox
.
Я хочу привязать данные к списку из 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);
}
}
Благодарим за помощь.
Спасибо за ответ Мэтью. Изменение кода привело к ошибке компиляции с сообщением об ошибке: Ошибка Неизвестное свойство «Путь» для типа «System.Windows.StaticResourceExtension», встречающееся при разборе Расширения разметки. Должен ли я изменить что-то еще? – Boris 2010-11-23 19:04:10
Извинения, я пропустил немного. Пожалуйста, попробуйте еще раз. – 2010-11-23 20:34:44