• 0

كيف أتيح Combobox في Viewmodel؟

لدي قائمة منسدلة 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
}

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

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 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);
}

 

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن