ورود

View Full Version : مبتدی: تفاوت برنامه نویسی سی شارپ در WPF و WINDOWS FORM



seyed saeed
چهارشنبه 12 تیر 1398, 13:07 عصر
سلام
می خواستم از WINDOWS FORM برم سراغ WPF و یکی از کارهایی که اون سمت کرده بودم رو انتقال بدم این سمت یعنی تبدیل به WPF کنم
وقتی شروع به کار کردم متوجه شدم برنامه نویسی قسمت سی شارپشون باهم فرق داره
به طور مثال

ListViewItem lv1 = new ListViewItem(value);
listView1.Items.Add(lv1);
این کاری بود که برای نمایش در Listview انجام می دادم
ولی الان این کار رو داخل wpf نمیشه انجام داد
یکی از نکاتش اینه که اصلا listviewitem یدونه سازنده بیش تر نداره در صورتی که تو ویندوز فرم خیلی بیش تر بود
و کلا فرق داره
ممکنه از ویژوال من باشه و کتابخانه هاش ناقص باشه ؟؟؟؟!!!!!!!!!!!!!
!!!

sh
چهارشنبه 12 تیر 1398, 22:38 عصر
ساختار WPF بسیار مدرن تر و به روز تر از Windows Forms است.
تبدیل برنامه نوشته شده از ساختار قبلی به ساختار جدید بدون یادگیری WPF برای شما بسیار زمان بر است

ابتدا WPF و ساختار برنامه نویسی در آن را یاد بگیرید

https://www.wpftutorial.net/LearnWPFin14Days.html

https://www.tutorialspoint.com/wpf/

https://wpf-tutorial.com/

برای آموزش فارسی به سایت زیر مراجعه کن

www.provid.ir (http://www.provid.ir)

seyed saeed
جمعه 14 تیر 1398, 11:47 صبح
ساختار WPF بسیار مدرن تر و به روز تر از Windows Forms است.
تبدیل برنامه نوشته شده از ساختار قبلی به ساختار جدید بدون یادگیری WPF برای شما بسیار زمان بر است

ابتدا WPF و ساختار برنامه نویسی در آن را یاد بگیرید

https://www.wpftutorial.net/LearnWPFin14Days.html

https://www.tutorialspoint.com/wpf/

https://wpf-tutorial.com/

برای آموزش فارسی به سایت زیر مراجعه کن

www.provid.ir (http://www.provid.ir)

به طور مثال الان هر کاری می کنم اطلاعات به درستی در lisview قرار نمی گیره

sr.Add(new User() { Name = "saeed", Family = "hoseini", Code = "1", P = "100", V = "30" });

listView1.ItemsSource = sr;
این روشی هست که در یک فیلم دیدم و اطلاعات رو درون لیست نمایش میداد ولی برای من این اتفاق نمی افته

barnamenevisjavan
جمعه 14 تیر 1398, 19:58 عصر
به طور مثال الان هر کاری می کنم اطلاعات به درستی در lisview قرار نمی گیره

sr.Add(new User() { Name = "saeed", Family = "hoseini", Code = "1", P = "100", V = "30" });

listView1.ItemsSource = sr;
این روشی هست که در یک فیلم دیدم و اطلاعات رو درون لیست نمایش میداد ولی برای من این اتفاق نمی افته
به خاطر این که شما دارین مدلی از داده هارو متصل میکنید باید تو رابط کاربری هم مدل موردنیازتون رو ایجاد کنید کافیه ItemTemplate رو دوباره خودتون ایجاد کنید
<ListView Margin="10" Name="listView1"> <ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="Name: " />
<TextBlock Text="{Binding Name}"/>
<TextBlock Text=", " />
<TextBlock Text="Family: " />
<TextBlock Text="{Binding Family}"/>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

seyed saeed
شنبه 15 تیر 1398, 09:01 صبح
به خاطر این که شما دارین مدلی از داده هارو متصل میکنید باید تو رابط کاربری هم مدل موردنیازتون رو ایجاد کنید کافیه ItemTemplate رو دوباره خودتون ایجاد کنید
<ListView Margin="10" Name="listView1"> <ListView.ItemTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="Name: " />
<TextBlock Text="{Binding Name}"/>
<TextBlock Text=", " />
<TextBlock Text="Family: " />
<TextBlock Text="{Binding Family}"/>
</WrapPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

سلام به این روش مشکل حل شد

<ListView.View>
<GridView>
<GridViewColumn Header="نام" Width="100" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="نام خانوداگی" Width="100" DisplayMemberBinding="{Binding Family}"/>
<GridViewColumn Header="کد ملی" Width="100" DisplayMemberBinding="{Binding Code}"/>
<GridViewColumn Header="پس انداز" Width="100" DisplayMemberBinding="{Binding P}"/>
<GridViewColumn Header="وام" Width="100" DisplayMemberBinding="{Binding V}"/>
</GridView>
</ListView.View>
فقط سوالی که هست من نمی دونم این اطلاعات رو از کجای سایت مایکروسافت باید پیدا کنم به طور مثال کدوم قسمت از سایت مایکروسافت به موضوع bind اشاره کرده؟؟؟

barnamenevisjavan
شنبه 15 تیر 1398, 11:18 صبح
سلام به این روش مشکل حل شد

<ListView.View>
<GridView>
<GridViewColumn Header="نام" Width="100" DisplayMemberBinding="{Binding Name}"/>
<GridViewColumn Header="نام خانوداگی" Width="100" DisplayMemberBinding="{Binding Family}"/>
<GridViewColumn Header="کد ملی" Width="100" DisplayMemberBinding="{Binding Code}"/>
<GridViewColumn Header="پس انداز" Width="100" DisplayMemberBinding="{Binding P}"/>
<GridViewColumn Header="وام" Width="100" DisplayMemberBinding="{Binding V}"/>
</GridView>
</ListView.View>
فقط سوالی که هست من نمی دونم این اطلاعات رو از کجای سایت مایکروسافت باید پیدا کنم به طور مثال کدوم قسمت از سایت مایکروسافت به موضوع bind اشاره کرده؟؟؟
https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-binding-overview
برای یادگیری wpf این دوره هارو میتونید تهیه کنید
https://www.daneshjooyar.com/author/mahdidvb/
https://www.wpf-tutorial.com/

seyed saeed
شنبه 15 تیر 1398, 15:24 عصر
https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/data-binding-overview
برای یادگیری wpf این دوره هارو میتونید تهیه کنید
https://www.daneshjooyar.com/author/mahdidvb/
https://www.wpf-tutorial.com/
الان مشکل حل شد ولی یه مشکل دیگه دارم حالا می خوام از روی لیست بریزم روی چند تا تکست باکس یا اینکه اطلاعات رو بریزم روی یه فایل تکست
نمیشه نمی دونم کلا این جا همه چی فرق داره

miladkha
شنبه 15 تیر 1398, 16:05 عصر
سلام میشه بهم بگید قالب این سایت چیه؟
https://ahan3.com/

barnamenevisjavan
شنبه 15 تیر 1398, 16:07 عصر
الان مشکل حل شد ولی یه مشکل دیگه دارم حالا می خوام از روی لیست بریزم روی چند تا تکست باکس یا اینکه اطلاعات رو بریزم روی یه فایل تکست
نمیشه نمی دونم کلا این جا همه چی فرق داره
this.Title = (listView1.SelectedItem as User).Family;

seyed saeed
یک شنبه 16 تیر 1398, 08:52 صبح
this.Title = (listView1.SelectedItem as User).Family;

الان دیدم که کلمه as یعنی چی
پس ما در واقع اون بخشی که روش select میشه رو به نوع user تبدیلش می کنیم و این طوری هر کدام از خانه هاش متناظر با user میشه
درسته ؟؟؟

barnamenevisjavan
یک شنبه 16 تیر 1398, 13:28 عصر
الان دیدم که کلمه as یعنی چی
پس ما در واقع اون بخشی که روش select میشه رو به نوع user تبدیلش می کنیم و این طوری هر کدام از خانه هاش متناظر با user میشه
درسته ؟؟؟
بله دیتا رو به عنوان مدل درمیاریم و رکورد موردنظر رو برمیداریم