С помощью datacontext из основной сетки я пытаюсь использовать собранную информацию от пользователя и сохранить ее в списке, а затем использовать этот список и иметь возможность получать информацию с помощью LINQ.
ColDiv._inventaire.Add (Inventaire);
Coldiv - это один из моих cs-файлов, _inventaire - это список, а inventaire - данные из текста данных.
Код ColDiv внутри моего класса:
class CollectionsDiverses
{
public List<Client> _client = new List<Client>();
public List<Inventaire> _inventaire = new List<Inventaire>();
public List<Vente> _VenteArticle = new List<Vente>();
Вот код для размещения текста данных из сетки в свойствах и внутри списка. (Списки ниже)
Inventaire inventaire = null;
frmArticle frmArticle = new frmArticle
bool? bReturn = frmArticle.ShowDialog();
if (bReturn == true)
{
inventaire = (Inventaire)frmArticle.grdMain.DataContext;
inventaire.Créé = DateTime.Now.ToString();
ColDiv._inventaire.Add(inventaire);
dgInventaire.Items.Refresh()
}
Теперь, по логике, оно сохранено. Теперь, из другого источника, TextBox с событием TextChanged, перехватывающим идентификатор (например) клиента:
private void TxtNoArticle_TextChanged(object sender, TextChangedEventArgs e)
{
try
{
_venteEdition.NoArticle = Int32.Parse(txtNoArticle.Text);
_venteEdition.ArticleComplet = ArticleCompletToString(_venteEdition.NoArticle);
lblArticleComplet.Content = _venteEdition.ArticleComplet;
}
catch (Exception){}
Затем перейдите к LINQ из метода, чтобы найти клиента с идентификатором, введенным пользователем:
public string ArticleCompletToString(int iNombre)
{
string sArticle = "";
var req = from art in ColDiv._inventaire
where art.No == iNombre // art.No is the ID the user wants and iNombre is the ID the user entered in the TextBox
select new
{
art.Modèle,
art.Marque
};
foreach (var i in req)
{
sArticle = i.Modèle + " " + i.Marque;
}
return sArticle;
Он должен возвращать именно ту информацию, которую я хочу получить из списка, но, похоже, он даже не создает нового Inventaire.