اذهب إلى المحتوى

السؤال

نشر

لدي قائمة منسدلة combobox في ملف xaml، بالاضافة إلى ملف viewmodel  وأريد اضافة القائمة المنسدلة إلى الملف، حاولت بهذه الطريقة:

كود xaml :

<ComboBox   Binding.XmlNamespaceManager="SelectNameCB"  
            FontSize="15" 
            Margin="10,0,0,0" 
            HorizontalAlignment="Left" 
            VerticalAlignment="Top" 
            Width="207" />

ملف viewmodel، حيث أن SelectNameCB معرّف لـ Combobox:

private void ComboBoxdata()
{
    OleDbConnection ConDb;
    String eID;

    ConDb = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Admin\\Documents\\Visual Studio 2012\\Projects\\Feedback\\Feedback.accdb");

    try
    {
        ConDb.Open();
        OleDbCommand DBSelect = new System.Data.OleDb.OleDbCommand("select FName, LName,ID_NAME from NameList", ConDb);
        OleDbDataReader reader = DBSelect.ExecuteReader();



        while (reader.Read())
        {
            string eNAME = "";
            eID = reader["ID_NAME"].ToString();

            eNAME += reader["FName"].ToString();
            eNAME += " " + reader["LName"].ToString();

            SelectNameCB.Items.Add(eNAME);


        }
    }
    catch (Exception ae)
    {
        MessageBox.Show(ae.Message);

    }//catch
}

وللأسف لم ينجح الأمر ـ هل من تقنية أخرى لفعل ذلك؟ أو تصحيح للكود السابق؟

Recommended Posts

  • 0
نشر

جرّب هذا الكود، حيث في أول الأمر سنكتب الدالة الخاصة بملء القائمة المنسدلة:

private List<string> _MyComboBoxData;
public List<string> MyComboBoxData
{
//جلب العناصر من مصفوفة
    get
    {
        return _MyComboBoxData;
    }
//إدخال القيم للمصفوفة
    set
    {
        _MyComboBoxData = value;
        OnPropertyChanged(() => MyComboBoxData);
    }
}

ثم نجلب البيانات من القاعدة -قاعدة البيانات-، ونضيفها للقائمة المنسدلة بالشكل التالي:

 

ConDb.Open();
OleDbCommand DBSelect = new System.Data.OleDb.OleDbCommand("select FName, LName,ID_NAME from NameList", ConDb);
// جلب البيانات
OleDbDataReader reader = DBSelect.ExecuteReader();
// قراءة البيانات
while (reader.Read())
{
    string eNAME = "";
    eID = reader["ID_NAME"].ToString();
    eNAME += reader["FName"].ToString();
    eNAME += " " + reader["LName"].ToString();

// إضافة المعلومات المستخرجة من قاعدة البيانات إلى القامة المنسدلة
    MyComboBoxData.Add(eNAME);
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...