Простая привязка данных к списку объектов. Ошибка "CreateBookInfoList" не существует в текущем контексте - C#
Формулировка задачи:
Ошибка 2 Элемент "CreateBookInfoList" не существует в текущем контексте.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
bookInfoList = CreateBookInfoList();
Bind();
BindingManager.PositionChanged += new EventHandler(BindingManager_PositionChanged);
RefreshData();
}
private BookInfo CreateBookInfo()
{
BookInfo bookInfo = new BookInfo();
bookInfo.Author = "Том Клэнси";
bookInfo.Title = "Игры патриотов";
bookInfo.xxx = "5-699-18175-Х";
bookInfo.PageCount = 706;
bookInfo.Publisher = "ЭКСМО";
return bookInfo;
}
private void Bind()
{
textBox1.DataBindings.Add("Text", bookInfoList, "Author", true);
textBox2.DataBindings.Add("Text", bookInfoList, "Title");
textBox3.DataBindings.Add("Text", bookInfoList, "xxx");
textBox4.DataBindings.Add("Text", bookInfoList, "PageCount");
textBox5.DataBindings.Add("Text", bookInfoList, "Publisher");
}
private BindingManagerBase BindingManager
{
get
{
return BindingContext[bookInfoList];
}
}
private void BindingManager_PositionChanged(object sender, EventArgs e)
{
RefreshData();
}
private void button1_Click(object sender, EventArgs e)
{
BindingManager.Position = 0;
RefreshData();
}
private void button2_Click(object sender, EventArgs e)
{
BindingManager.Position--;
RefreshData();
}
private void button3_Click(object sender, EventArgs e)
{
BindingManager.Position++;
RefreshData();
}
private void moveLastButton_Click(object sender, EventArgs e)
{
BindingManager.Position = BindingManager.Count - 1;
RefreshData();
}
private void RefreshData()
{
int count = BindingManager.Count;
int position = BindingManager.Position + 1;
label2.Text = count.ToString();
label1.Text = position.ToString();
button1.Enabled = position > 1;
button2.Enabled = position > 1;
button3.Enabled = position < count;
button4.Enabled = position < count;
}
private List<BookInfo> bookInfoList;
}
class BookInfo
{
public string Author { get; set; }
public string Title { get; set; }
public string xxx { get; set; }
public int PageCount { get; set; }
public string Publisher { get; set; }
}
}Решение задачи: «Простая привязка данных к списку объектов. Ошибка "CreateBookInfoList" не существует в текущем контексте»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private BookInfo bookInfo;
private BookInfo bookInfo2;
private List<BookInfo> bookInfoList;
public Form1()
{
InitializeComponent();
bookInfo = CreateBookInfo();
bookInfo2 = CreateBookInfo2();
bookInfoList = new List<BookInfo>();
bookInfoList.Add(bookInfo);
bookInfoList.Add(bookInfo2);
Bind();
BindingManager.PositionChanged += new EventHandler(BindingManager_PositionChanged);
button1.Click+=new EventHandler(button1_Click);
button2.Click+=new EventHandler(button2_Click);
button3.Click+=new EventHandler(button3_Click);
button4.Click+=new EventHandler(button4_Click);
RefreshData();
}
private BookInfo CreateBookInfo()
{
BookInfo bookInfo = new BookInfo();
bookInfo.Author = "Том Клэнси";
bookInfo.Title = "Игры патриотов";
bookInfo.ISBN = "5-699-18175-Х";
bookInfo.PageCount = 706;
bookInfo.Publisher = "ЭКСМО";
return bookInfo;
}
private BookInfo CreateBookInfo2()
{
BookInfo bookInfo2 = new BookInfo();
bookInfo2.Author = "Том Клэнси";
bookInfo2.Title = "Red rabbit";
bookInfo2.ISBN = "5-699-18175-Х";
bookInfo2.PageCount = 756;
bookInfo2.Publisher = "ЭКСМО";
return bookInfo2;
}
private void Bind()
{
Binding authorBinding = new Binding("Text", bookInfoList, "Author", true);
textBox1.DataBindings.Add(authorBinding);
textBox2.DataBindings.Add("Text", bookInfoList, "Title");
textBox3.DataBindings.Add("Text", bookInfoList, "ISBN");
textBox4.DataBindings.Add("Text", bookInfoList, "PageCount");
textBox5.DataBindings.Add("Text", bookInfoList, "Publisher");
}
private BindingManagerBase BindingManager
{
get
{
return BindingContext[bookInfoList];
}
}
private void BindingManager_PositionChanged(object sender, EventArgs e)
{
RefreshData();
}
private void button1_Click(object sender, EventArgs e)
{
BindingManager.Position = 0;
RefreshData();
}
private void button2_Click(object sender, EventArgs e)
{
BindingManager.Position--;
RefreshData();
}
private void button3_Click(object sender, EventArgs e)
{
BindingManager.Position++;
RefreshData();
}
private void button4_Click(object sender, EventArgs e)
{
BindingManager.Position = BindingManager.Count - 1;
RefreshData();
}
private void RefreshData()
{
int count = BindingManager.Count;
int position = BindingManager.Position + 1;
label2.Text = count.ToString();
label1.Text = position.ToString();
button1.Enabled = position > 1;
button2.Enabled = position > 1;
button3.Enabled = position < count;
button4.Enabled = position < count;
}
}
class BookInfo
{
public string Author { get; set; }
public string Title { get; set; }
public string ISBN { get; set; }
public int PageCount { get; set; }
public string Publisher { get; set; }
}
}