Я пишу настольное приложение в Visual Studio 2008 / C #
Я закончил (в основном) написание движка, который генерирует график работы на неделю для небольшой компании; форма задачи планирования курса
Прямо сейчас я разрабатываю форму, в которой пользователь может определить начальные параметры или критерии, которым должен следовать движок (так как некоторые настройки являются необязательными)
У меня есть класс с именем EngineParameters, который содержит все эти настройки.
Для привязки данных я создал класс bndEngineParameters , который инкапсулирует все соответствующие поля с помощью методов получения и установки
public class bndEngineParameters
{
private engineParameters _parameters;
public bndEngineParameters(engineParameters ep)
{
this._parameters = ep;
}
public bool avoidGrouping
{
get { return _parameters.avoidGrouping; }
set { _parameters.avoidGrouping = value; }
}
public bool avoidWeekends
{
get { return _parameters.avoidWeekends; }
set { _parameters.avoidWeekends = value; }
}
public bool keyFlow
{
get { return _parameters.keyFlow; }
set { _parameters.keyFlow = value; }
}
public bool keyFlowAssistants
{
get { return _parameters.keyFlowAssistants; }
set { _parameters.keyFlowAssistants = value; }
}
}
Это не завершено - будут значения типа int (максимальное количество часов, которое можно проработать и т. Д.); Я хочу, чтобы эти значения bool были привязаны к флажкам в моей форме
И именно на этой тривиальной задаче я неожиданно столкнулся с проблемами
С помощью мастера «Добавить новый источник данных» я создал источник привязки
private System.Windows.Forms.BindingSource bndEngineParametersBindingSource;
Затем я связал свойство Checked моего флажка с соответствующим свойством моего источника привязки:
Я реализовал локальную переменную boundParameters , чтобы получить доступ к параметрам, установленным пользователем
public partial class formGenerateRota : Form
{
public bndEngineParameters boundParameters;
// (...)
public formGenerateRota()
{
InitializeComponent();
}
private void formGenerateRota_Load(object sender, EventArgs e)
{
boundParameters = new bndEngineParameters(new engineParameters());
bndEngineParametersBindingSource.Add(boundParameters);
}
// (...)
}
И что? Ничего не произошло. В bndEngineParametersBindingSource.Current (конечно, во время выполнения) есть объект bndEngineParameters, но значение avoWeekends никогда не меняется (когда я включаю и выключаю флажок), а bndEngineParametersBindingSource_CurrentItemChanged событие никогда не запускается
Что не так?
SORRY! оно меняется, но только после того, как флажок теряет фокус (после проверки).
иногда я тупой
Если я все равно что-то не так делаю (я не очень хорошо разбираюсь в данных), я был бы очень признателен, если бы вы указали на это, конечно!