برنامه نویسی با search هم میشه هاااا

The Results Of My Searches

ساختن دو ستون در WPF - ComboBox

پنجشنبه, ۳۱ مرداد ۱۳۹۲، ۰۹:۰۱ ب.ظ
برای اینکه بتونیم دو تا ستون در combobox ایجاد کنیم باید یک datatable با دو ستون ایجاد کنیم و اون رو به ItemsSource اِ ComboBox بدهیم...
(namespace اِ system.Data رو به پروژه اضافه کنید.)
به عنوان مثال:
private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
     DataTable dt = new DataTable();
     dt.Columns.Add("Name");
     dt.Columns.Add("Id");

     dt.Rows.Add("Shima", "66");
     dt.Rows.Add("Maryam", "6");
     dt.Rows.Add("Sara", "70");

     cmbStudent.ItemsSource = dt.DefaultView;
}
بعد در قسمت xmal باید یک DataTemplate بسازیم:
<DataTemplate x:Key="ComboTemplate">
    <StackPanel Orientation="Horizontal">
        <TextBlock Text="{Binding Path=Name}" Width="100" FontFamily="B Homa" FontSize="12" />
           <Border  BorderThickness="1" BorderBrush="Black">
           </Border>
        <TextBlock Text="{Binding Path=Id}" Width="63" FontFamily="B Homa" FontSize="12" />
    </StackPanel>
</DataTemplate>
و در کد xmal قسمتی که combobox رو تعریف کردین کد زیر رو اضافه کنید:

<Grid>
   <ComboBox Name="cmbStudent" ItemTemplate="{StaticResource ComboTemplate}"  Width="163"/>
</Grid>

combobox
موافقین ۴ مخالفین ۰ ۹۲/۰۵/۳۱
شیما اسلامی فر

نظرات  (۶)

۳۱ مرداد ۹۲ ، ۲۲:۰۳ سارا زکی زاده
سلام.
اگر بخواهیم محتویات ComboBox رو از دیتا بیس پر کنیم چی؟؟؟
پاسخ:
سلام
خب پر کنید P:
از دیتابیس یا اکسل یا هر جای دیگه... مهم داشتن یک DataTable با دو تا ستونه...
برحال مرسی بابت نظرت... الان یه "به عنوان مثال" میذارم قبل از کد که سوء تفاهم نشه ;)
۳۱ مرداد ۹۲ ، ۲۳:۴۰ میثم هوشمند
ValueMember و DisplayMember
کمبو باکس چه می شوند؟
با تشکر
پاسخ:

?

?

?

?

۰۱ شهریور ۹۲ ، ۱۴:۰۰ سارا زکی زاده
میگم اونوقت جریان Binding و این حرفا پیش میاد دیگه، چه جوریاست؟؟
خوب مثلا.... یا مثلا ما چند تا ستون داریم توی دیتا بیسمون اونوقت سه تا شو با دستور select نمایش میدیم...از اون سه تا یکیشو می خواهیم توی محاسبات استفاده کنیم.
میشه یه مثال بزنید؟؟؟
ببخشیدا.
پاسخ:
برای این کار به مقادیر DisplayMemberPath و SelectedValuePath احتیاج داریم. باید مقدار DisplayMemberPath رو بذاری روی اسم ستونی که میخوای توی combobox نشون بده مثلا توی مثالی که زدم توی پست، باید همون DataTable رو بسازی ولی دیگه توی xmal نباید ItemTemplate="{StaticResource ComboTemplate}"  رو بنویسی... در عوص در cs کد cmbItem.DisplayMemberPath = "Name"; رو باید بنویسی ... که در این حالت فقط اسم ها در combobox نشون داده میشن...
و اسم ستونی هم که میخوای مقدار ازش انخاب کنی هم باید بدی به SelectedValuePath مثلا میخوای وقتی شیما از combobox انتخاب شد عدد 66 رو بگیری از ستونها. در این حالت باید بنویسی cmbItem.SelectedValuePath = "Id";
حالا توی دیتابیس هم فرقی نمیکنه. یه DataTable داری که از دیتابیس پر شده و میدیش به source در combobox. و همین مسیری که بالا گفتم رو طی میکنی ;)
۰۴ شهریور ۹۲ ، ۲۱:۰۹ میثم هوشمند
جواب سوال خانم زکی زاده جواب سوال من بود!
با تشکر
پاسخ:
اون علامت تعجب یعنی جواب سؤالتون اونجا نبود؟!
۰۵ شهریور ۹۲ ، ۰۹:۴۶ میثم هوشمند
ّبود! :)
ممنونم بله جوابم را گرفتم

۱۷ شهریور ۹۲ ، ۱۰:۴۵ میثم هوشمند
شادی روح اموات
تازه گذشتگان
بلاگ های گروه دوستان صــــــاــــــــوات فرست!


پاسخ:
مجلس ختم گرفتین؟ :دی

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی