В настоящее время я пишу мастер (используя библиотеку MBG SimpleWizard). У меня есть несколько страниц. и как способ обмена данными между ними, они передаются классу out DBManip DBController
. Мне нужно использовать этот DBController в методе, но вызов обрабатывается библиотекой, поэтому я не могу легко передать DBController ссылкой на метод. Как я могу передать переданную ссылку в свойство, которое метод может изменить, и сохранить ссылку.Выполнение справки, доступной для методов
Класс инициализации:
WizardHost host = new WizardHost();
using (host)
{
host.Text = Migration.Properties.Resources.AppName;
host.ShowFirstButton = false;
host.ShowLastButton = false;
host.WizardCompleted += new WizardHost.WizardCompletedEventHandler(this.Host_WizardCompleted);
DBManip DBController;
host.WizardPages.Add(1, new Page1());
host.WizardPages.Add(2, new Page2(out DBController));
host.WizardPages.Add(3, new Page3(out DBController));
host.WizardPages.Add(4, new Page4(out DBController));
host.LoadWizard();
host.ShowDialog();
}
Конструктор:
public Page2(out DBManip DBController)
{
this.InitializeComponent();
this.label1.Text = Migration.Properties.Resources.ExportDirectoryMessage;
this.exportDirTextbox.Text = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
}
Метод:
private bool SetExportDirectory()
{
string exportDirectory = this.exportDirTextbox.Text;
// If a path is given, check if it's valid
// and set the pathExists boolean
if (!Directory.Exists(exportDirectory))
{
MessageBox.Show(Migration.Properties.Resources.InvalidPath);
return false;
}
// Initializing the object to manipulate the databases
exportDirectory = new DBManip(exportDirectory);
return true;
}
недвижимости, который будет вызывать метод:
public bool PageValid
{
get { return SetExportDirectory(); }
}
Извините, если я пропустил что-то простое, я довольно новичок в C#
Вы говорите, что вы хотите, чтобы все ваши классы Page (Page1, Page2 и т.д.), чтобы поделиться ссылкой на общий экземпляр 'DBManip', и вы хотите, чтобы' SetExportDirectory' что-то делал с этим экземпляром 'DBManip'? Какой класс является 'SetExportDirectory' членом? –
К первому вопросу, да. Во-вторых, он является членом страницы, а также PageValid. (У страницы 1 нет ссылки, потому что она не нужна, но вы получаете идею). –
Я могу только догадываться, для чего вы хотите использовать «DBManip», но я предоставил ответ, показывающий, как один экземпляр «DBManip» среди классов Page. –