با سلام خدمت اساتید
یک برنامه دارم که برای ارسال نامه به کاربران می باشد .
کاربران رو از طریق جدول فراخوانی کردم و اونها رو توی دیتاگرید نمایش دادم . تا اینجای کار مشکلی ندارم .
کد XAML ستون اول من اینطوریه :
<DataGridCheckBoxColumn Header="انتخاب" Width="50" Binding="{Binding}"> <DataGridCheckBoxColumn.HeaderStyle> <Style TargetType="{x:Type DataGridColumnHeader}"> <Setter Property="FontFamily" Value="B Mitra"/> <Setter Property="FontSize" Value="15"/> <Setter Property="FontWeight" Value="Bold"/> <Setter Property="HorizontalContentAlignment" Value="Center"/> </Style> </DataGridCheckBoxColumn.HeaderStyle> </DataGridCheckBoxColumn>
که شکل چک باکس به خوذش گرفته و قابل تیک خوردن و تیک برداشتن هست
اما کد برنامه ی من توی Windows Form که طراحی و پیاده سازیش کردم به شکل زیره
من میخوام اینو توی WPF پیاده سازی کنم . لطفا راهنماییم کنید
using (TransactionScope ts = new TransactionScope()) { try { //// خروج نامه از قسمت پیش نویس var query_Update = (from L in database.Letters where L.LetterID == this.Get_LetterID select L).SingleOrDefault(); query_Update.DraftType = 2; query_Update.SendLetterDate = PublicVariable.TodayDate; database.SaveChanges(); //// ارسال نامه List<DataGridView> rown_with_check_column = new List<DataGridView>(); foreach (DataGridViewRow row in dgv_SelectUserToSendLetter.Rows) { SendLetter SL = new SendLetter(); if (Convert.ToBoolean(row.Cells["SelectUser"].Value) == true) { SL.LetterID = this.Get_LetterID; SL.UserID = Convert.ToInt32(row.Cells["UserID"].Value); SL.ReadType = 0; SL.IsMessage = 0; database.SendLetters.Add(SL); } } database.SaveChanges(); ts.Complete(); MessageBox.Show("نامه با موفقیت ارسال شد"); this.Close(); } catch { MessageBox.Show("در ارتباط با سرور مشکلی بوجود آمده است ، لطفا مجددا تلاش نمایید"); return; } }
SelectUser اسم ستون مربوطه به چک باکسه و هدرش هم "انتخاب" می باشد ...
ممنون میشم راهنمماییم کنید ...
کسی از اساتید راه حلی نداره برای این برنامه ؟؟؟
منظورتون رو متوجه نشدم
لطفا با تصویر مثال بزنید
یک برنامه رو در نظر بگیرید که کاربرانش قادر به ارسال نامه براک هم هستند . برنامه ای که با sql و دیتایس کار میکنه . حالا یک کاربر یک نامه ایجاد کرده و میخواد اون رو ارسال کنه . بعد از زدن دکمه ارسال نامه ، یک فرم ببراش نمایش داده میشه که لیست کارمندان یا افرادی که توی اون شرکت مشغول به کار هستن رو توش داره . این فرم یک دیتاگرید داره که شامل چند ستونه (ستون اول حالت چک باکس باید داشته باشه تا کاربر بتونه انتخاب کنه ، ستون دوم نام کاربر و ستون سوم هم شغل کاربر) . کاربرهایی رو که میخواد تیک میزنه و بعد دکمه ارسال نامه رو میزنه و نامه برای اون افرادی که انتخاب شدند ارسال میشه .
از فرم پیش نویس نامه ها ، نامه مورد نظر را انتخاب و بر روی دکمه ارسال نامه کلیک میکنیم تا فرم انتخاب کاربران برای ارسال نامه باز شود . کاربران را انتخاب کرده و ارسال نامه را میزنیم ...
کد نمونه پیاده سازیش شده توی window form هم توی کامنت های قبلی گذاشتم ...
ممنون میشم راهنمایی کنید ...
مشکل شما در کدام قسمت است ؟
مشکل من تا اینجا نیست ، بلکه از اینجا به بعده . یعنی زمانیکه روی دکمه ارسال میزنم تا فرایند ارسال صورت بگیره . قطعه کدی شبیه به همین که توی پست اولم گفتم نشوتم ، اما جواب نمیده . BreakPoint گرفتم دیدم بخش اول رو که اجرا میکنه از برنامه خارج میشه و داخل بلاک نمیره ...
List<DataGridView> rown_with_check_column = new List<DataGridView>(); foreach (DataGridViewRow row in dgv_SelectUserToSendLetter.Rows) { SendLetter SL = new SendLetter(); if (Convert.ToBoolean(row.Cells["SelectUser"].Value) == true) { SL.LetterID = this.Get_LetterID; SL.UserID = Convert.ToInt32(row.Cells["UserID"].Value); SL.ReadType = 0; SL.IsMessage = 0; database.SendLetters.Add(SL); } }
این بخش رو مشکل دارم . علل خصوص توی دو خط اولش ، البته برای پیاده سازی توی wpf . چون همین کد توی windows Form جواب داده و دارم کار میکنم ...
سپاسگذارم از اساتید محترم ...
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)