#c# #winforms #entity-framework-5
#c# #winforms #entity-framework-5
Вопрос:
У меня довольно интересная проблема…
У меня есть одна форма, в которой у меня есть datagridview. Из этой сетки данных я выбираю объект (в моем случае лекарство), и когда я нажимаю на кнопку «Создать рецепт», я вызываю свою другую форму под названием «Новый рецепт», и она привязывается к этой форме datagrid
Теперь проблема в том, что я хочу передать больше объектов за один «сеанс», например, больше товаров в одной форме квитанции.
Вот код для FORM1
private void btnIzdavanjeRacuna_Click(object sender, EventArgs e)
{
hzzoLijekovi selektiraniLijek = hzzoLijekoviBindingSource.Current as hzzoLijekovi;
if (selektiraniLijek != null)
{
using (var db = new appotekaDBEntities())
{
var lijekApoteka = (from l in db.lijekovi
where l.serijskiBroj == selektiraniLijek.serijskiBroj
select l).SingleOrDefault();
if (lijekApoteka == null)
{
MessageBox.Show("Lijek ne postoji u bazi", "Upozorenje");
}
else if (lijekApoteka.kolicina == 0)
{
MessageBox.Show("Lijek ne postoji trenutno na zalihi", "Upozorenje");
}
else
{
FormRacuniNovi noviRacunForma = new FormRacuniNovi(lijekApoteka);
noviRacunForma.Show();
}
}
}
}
Извините, это на хорватском языке, но вы должны понимать логику. Итак … все работает для элемента или объекта
В другой ФОРМЕ » У меня есть
private lijekovi lijekNaRacun;
public FormRacuniNovi (lijekovi lnr)
{
InitializeComponent();
lijekNaRacun = lnr;
}
private void FormRacuniNovi_Load(object sender, EventArgs e)
{
lijekoviBindingSource.DataSource = lijekNaRacun;
}
Я думаю, что мне, вероятно, следует перенести список привязок, но допустим, я хочу передавать один элемент за другим, потому что в противном случае это сложно (у меня есть несколько других запросов, прежде чем я перейду к сетке данных, которую я хочу перенести в FORM1)
Как мне решить эту проблему?
Во второй ФОРМЕ или форме, в которой я хочу иметь несколько элементов в datagrid, у меня, вероятно, должен быть список привязок, но тогда у меня возникает проблема с преобразованием при передаче a .Объект SingleOrDefault()…
Комментарии:
1. Просто для ясности, вы спрашиваете, как отправить несколько объектов в новую форму, но по одному за раз? Как вы не хотите передавать все конструктору новой формы? p.s. Хорватский язык выглядит очень интересно.
2. Да, точно, когда я нажимаю на сетку данных в ПЕРВОЙ форме, я отправляю первый объект и с его помощью создаю вторую форму, а затем отправляю больше объектов (когда я нажимаю в таблице datagrid), но все равно добавляю его во вторую форму datagrid, все в том же
Ответ №1:
Я думаю, что это должно сделать ;
Измените конструктор новой формы Recipet следующим образом :
Form1 frm;
public New_Recipet(Form1 sender)
{
frm= sender;
}
Создайте функцию в Form1.cs :
public void CreateRec(string argThatYouNeed,string anOtherArgThatYouNeed)
{
//Do Whatever You Want With Args
}
и нажмите кнопку отправить в форме рецепта :
frm.CreateRec(arg1,arg2);
Комментарии:
1. Это было бы нормально, если бы у меня были фиксированные аргументы, но что, если я выберу их из Datagrid (таблицы), которая может содержать 1,2,3 или более строк, которые я передаю?
2. @user3732071 Для этого вы можете передать массив элементов выбранных строк в другую форму. Или вы можете написать класс для своих нужд и передать его в качестве параметра
3. Да, это поможет! Не могли бы вы помочь мне с другой проблемой, с которой я столкнулся -> добавление нескольких выбранных элементов в список привязок? Вот снип: i.imgur.com/WIYsPoi.png . Я хочу добавить текущие элементы, которые я нажимаю на список привязки, а затем переношу весь список дальше
4. ^^ Обнаружена проблема — я переношу ToList() в BindingList
5. @user3732071 Извините за опоздание. Я работал. Я рад, что это сработало ^ _ ^