PDA

View Full Version : كمبو باكس



behroz1387
پنج شنبه 07 آبان 1388, 16:11 عصر
دوستان عزيز با سلام
اگه بخوام كه يك كمبو باكس كه اطلاعات خود را از پايگاه داده بگيرد چطوري بايد اقدام كنم
و همچنين اگه بخوام وقتي روي يك دكمه كليك مي شه از برنامه خارج بشم بايد چكار كنم
توي محيط wpf منظورمه
ممنون از توجهتان

it4six
پنج شنبه 07 آبان 1388, 18:39 عصر
با سلام
برای پر کردن ComboBox باید از AddItem استفاده کنی که یکی از متد هایش هست . ولی می تونی زمان نیو کردن هم یه ایتم بهش بدی که می تونه از نوع object ارایه ای باشه . ولی با متد نمی تونی ارایه رو یکجا بهش بدی مگر با یه loop

برای کلیک شدن دکمه هم باید دکمه رو که نیو کردی .addActionListener(this) رو باهاش صدا بزنی و البته که از ActionListener هم باید impliment کرده باشین
ولی توی متد actionPerformed که براتون جنریت می شه می تونی هنگام کلیک شدن اون رو مدیریت کنی .
اون wpf که گفتی رو هم نمی دونم .....
پیروز باشید.

behroz1387
پنج شنبه 07 آبان 1388, 19:47 عصر
دوست عزيز منظورم اين بود كه در پروپرتيز خاصيتي مانندdatabindins نداره كه بتوان اطلاعات را از ديتا بيس وارد كنم
ممنون

sunn789
پنج شنبه 07 آبان 1388, 21:44 عصر
از طریق wpf راههای زیادی وجود داره اگه فقط تنظیمات داخل فرم wpf رو میخوایی برات میزلرم اما بسته به اینکه بخوایی از کدوم تکنولوژی در به دست اوردن اطلاعات در قسمت کد نویس استفاده کنید مثلاً میتونی از DataSet و یا Linq استفاد کنی که بسیار ساده است کد wpf رو میزارم اگه خواستید کد C# رو با Linq میزارم

<ComboBox Name="cmd_SearchType" Height="28" Width="120" Margin="10"
DisplayMemberPath="Name"/>

behroz1387
پنج شنبه 07 آبان 1388, 21:54 عصر
دوست گرامي مي خواهم از ديتا سيت استفاده كنم
مننون مي شم اگه كمي سريعتر جوابمو بدي

sunn789
پنج شنبه 07 آبان 1388, 22:57 عصر
اول یه نمونه از Data set بساز

private OrderDataSet OrderData = new OrderDataSet();

private CustomerLookupDataSet.CustomerDataTable CustomerLookup = new CustomerLookupDataSet.CustomerDataTable();
متغیر های بالا در خارج ازکلاسها .
و متغیر ها پایین رو در Window_Load

CustomerLookupDataSetTableAdapters.CustomerTableAd apter taCustomer = new CustomerLookupDataSetTableAdapters.CustomerTableAd apter();
taCustomer.Fill(this.CustomerLookup);

this.ComboBox1.ItemsSource = this.CustomerLookup;
ComboBox نام همون ComboBox هست و به نظرم بقیه مشخصه اگه با به مشکل برخوردی د رخدمتیم

behroz1387
پنج شنبه 07 آبان 1388, 23:35 عصر
دوست گرامي با تشكر از زحمتتان
من كد را نوشتم كه در قسمت قرمز رنگ ارور مي ده كه Error 2 The type or namespace name 'CustomerLookupDataSet' could not be found (are you missing a using directive or an assembly reference?)
اين هم كد نوشته شده
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication2
{


/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
private db2DataSet OrderData = new db2DataSet();
private CustomerLookupDataSet.CustomerDataTable CustomerLookup = new CustomerLookupDataSet.CustomerDataTable();
public Window1()
{
InitializeComponent();
}

private void Window_Loaded(object sender, RoutedEventArgs e)
{
CustomerLookupDataSetTableAdapters.CustomerTableAd apter taCustomer = new CustomerLookupDataSetTableAdapters.CustomerTableAd apter();
taCustomer.Fill(this.CustomerLookup);
this.ComboBox1.ItemsSource = this.CustomerLookup;
}

}
}

ممنون مي شم اگه كمك كنيد

sunn789
جمعه 08 آبان 1388, 00:59 صبح
ایرادت از اینه که شمه به جای CustomerLookupDataSet باید نام دیتاستی که خودت ساختی بنویسی و بهد از نام دیتا ست نام جدولی که قراره اطلاعات کمبو باکس از آن خونده بشه
دیتا ست رو هم میتونی از گزینه AddNewItem و اضافه کردن دیتا ست به پروژه خودت اضافه کنی یعنی اینکه لازم هست یه دیتا ست در پروژت ساخته باشی

behroz1387
جمعه 08 آبان 1388, 02:21 صبح
دوست عزيز با تشكر از توجهتان
كد را اصلاح كردم اما مشكل در اينجاست كه بجاي اطلاعات داخل كمبو باكس كل سطرها با عبارت system.data.datarow پر شده است
سوال دوم اينكه چطوري با وارد كردن اطلاعات در كمبو باكس تكست باكس از اطلاعات مربوط به ديتا بيس متناسب با كمبو باكس پر شود
ممنون مي شم اگه جواب بديد

sunn789
جمعه 08 آبان 1388, 08:48 صبح
در این مواقع دو تا راه حل داری یکی اینکه در تنظیمات کمبو باکس نوشته باشی

DisplayMemberPath = "Name"
و دوم اینکه در Quary که به بانک اطلاعاتی میفرستی فقط همون ایتمی رو که میخوایی نوشته باشی مثلاً

Select Name From tblUser
و توصیه اخر اینکه در این مواقع Linq راه حل ساده تری است

var ComboBoxItem = from c in db.tblUser select {c.Name}
که لازمه قبلش مانند DataSet یک Linq به پروژه اضافه کرده باشی و در بالای صفحه هم یه نمونه مثلاً در مثال بالا به اسم db بسازی

MasterLinq db = New MasterLinq;