دسته بندی ها
22:46 1399/07/30

نمایش ناقص اطلاعات در کمبوباکس WPF سی شارپ

مشخصات سوال کننده :
کاربر : mojtabahakimian     امتیاز کاربر : 155     رتبه کاربر : 10
دسته بندی : سی شارپ WPF Entity Framework Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 3094
پاسخ دهنده : fateme 23:05 1399/07/30

 برای Bind کردن اطلاعات دیتابیس به کمبوباکس در WPF میتونید از کدهای زیر استفاده کنید.

 

cmb.ItemsSource = database.Table.ToList();
cmb.DisplayMemberPath = "ColumnName";
cmb.SelectedValuePath = "ColumnID";

 

به نظرم اگر اطلاعات به درستی نمایش داده نمیشه اول یک BreakPoint روی کدهای خودتون و در خط ItemSource قرار بدید و مطمئن بشید اطلاعات از دیتابیس کامل و به صورت صحیح داره Load میشه. اگر در این قسمت مشکلی نبود میشه اطمینان داشت که اشکال از خود comboBox هست.

به این پاسخ امتیاز بدهید    0
امتیاز: 1617 رتبه: 2
2 نظر
mojtabahakimian : نکته جالب اینجاست که توی Trace میکنم میبینم کاراکتر رو درست نوشته "عدد"

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 11:39 1399/07/30
mojtabahakimian : ولی توی نمایشش درست نیست !

امتیاز کاربر : 155   رتبه کاربر : 10   تاریخ ثبت : 11:40 1399/07/30
پاسخ دهنده : Alireza 17:53 1399/09/21

سلام

شما میخوای اون ردیفی که از دیتاگرید انتخاب کردی اطلاعاتش بره توی کومبوباکس؟یا کل اطلاعات جدول دیتابیس؟

به این پاسخ امتیاز بدهید    1
امتیاز: 115 رتبه: 13
پاسخ دهنده : Alireza 19:59 1399/09/21

اگه میخوای اطلاعات یک ردیف رو بگیری این کد رو بنویس:

private void datagrid1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            object item = datagrid1.SelectedItem;
            if (item != null)
            {
                int Id = Convert.ToInt32((datagrid1.SelectedCells[0].Column.GetCellContent(item) as TextBlock).Text);
                var qre = dbms.Database.SqlQuery<Q_View>("SELECT * FROM Q_View where 1=1 And KalaID = " + Id);
                var Name = qre.ToList();
                combobox1.ItemsSource = Name;
                combobox1.SelectedValuePath = "KalaID";
                combobox1.DisplayMemberPath = "KalaName";
            }
        }

 

ویرایش شده در جمعه 21 آذر 1399 ساعت 20:06:02
به این پاسخ امتیاز بدهید    2
امتیاز: 115 رتبه: 13
پاسخ دهنده : Alireza 20:11 1399/09/21

اگر میخوای همه اطلاعات دیتابیس نمایش داده بشه این کد رو استفاده کن:

private void datagrid1_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            var qre = dbms.Database.SqlQuery<Q_View>("SELECT * FROM Q_View");
            var name = qre.ToList();
            object item = datagrid1.SelectedItem;
            if (item != null)
            {
                combobox1.ItemsSource = name;
                combobox1.SelectedValuePath = "«KalaID";
                combobox1.DisplayMemberPath = "KalaName";
            }
        }

 

به این پاسخ امتیاز بدهید    2
امتیاز: 115 رتبه: 13
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود