با سلام خدمت اساتید
من با DataGridView در سی شارپ ویندوز فرم کار کردم . زمانیکه یک فیلد ایجاد میکردیم و خاصیت Visibility رو برابر False میکردیم ، آن فیلد(ستون) در جدول نمایش داده نمی شد ، اما مقدار دهی می شد و ما قادر بودیم از مقادیر داخلش استفاده کنیم . مثلا فیلد UserID در یک جدول ، ما نیازی به نمایش نداریم ، اما برای یکسری کارها به مقادیرش نیاز داریم . خاصیت Visibility رو برابر False میکنیم و از آن استفاده میکنیم .
حال در DataGrid هم همین مشکل هست . در یک جدول بزرگ که دارای کلیدهای خارجی متعددی است و ما نیاز به استفاده از تمامی انها داریم و در صورت نمایش در جدول ، ظاهر آن زیبا نخواهد بود . راههای مختلفی را تست کردم تا در جدول نمایش داده نشود ، اما مقداردهی گردد و ما قادر به استفاده از مقادیر آن باشیم .
راهی پیدا نکردم و جوابی نیافتم . لطفا مرا راهنمایی کنید ...
سپاس فراوان
شما می توانید ستون های جدولتان را به صورت دستی تعریف کنید و آنها را به دیتاسورس متصل کنید (Bind) سپس صفت Visibility مواردی را که نمی خواهید نمایش داده شود برابر Collapsed
قرار دهید و برای بدست آورد اطلاعات هر ردیف در صورت انتخاب شدن آن می توانید از کد زیر استفاده کنید :
DataRowView row = (DataRowView)dg.SelectedItems[0];
سپس نام ستون مورد نظراتان را به ایندکس متغییر row دهید و مقدار آن را بدست آوردید :
row["ColumnName"];
سلام ممنون از راهنماییتون
در صورت امکان یک نمونه برنامه کوچیک برام تعریف میکنید ببینم چطوره ؟؟؟؟؟
ممنون میشم
من یک جدول دارم که دارای فیلدهایی است . یکی که کلید اصلی می باشد ID یا UserID ویک فیلد دیگر که به فرض برای نمایش وضعیت می باشد .فیلد وضعیت رو هم در View ویرایش کردم و با یک شرط با دریافت مقادیر 0 و 1 نوع وضعیت رو تعیین میکنم (فعال و غیر فعال) (یک فیلد Status با مقادیر یا 0 یا 1 ، یک فیلد FarsiStatus با مقدار فعال یا غیر فعال) . من در DataGrid خودم به هر دو مقدار نیاز دارم . اما دوست ندارم کاربر فیلد UserID و Status رو ببینه .
مقادیر هم بصورت دستی وارد سیستم نمی شه . کاملا داینامیکه . UserID هم بصورت اتوماتیک به هر فیلدی که به جدول اضافه میشه اختصاص پیدا میکنه .
تصویری از محیط برنامه
اطلاعات توسط یک فرم وارد سیستم می شود و درون دیتا بیس دخیره میگردد و توسط این فرم نمایش داده می شود ...
ممنون
کسی می تونه منو راهنمایی کنه ؟؟؟
یک مشکل دیگه هم توی wpf و datagrid دارم و اونهم savefiledialog می باشد . میخوام توی برنامه ام وقتی برای یکی نامه میفرستم ، اگه فایلی هم پیوست نیاز داشت براش پیوست کنم ، تا اینجا کار مشکلی ندارم . فایل رو فراخوانی کردم و توی دیتابیس دخیره کردم و توی جدول datagrid هم اسم فایل رو نمایش دادم . اما مشکل من اینجاست که میخوام خاصیت attachmen رو برای سلول "پیوست" در همه ی ردیف های جدول فعال کنم . وقتی کاربر روی نام فایل کلیک کرد ، پنجره savefiledialog باز شه و کاربر بتونه فایل رو در هرجایی که خواست دانلود کنه . توی C# اینکار رو کردم اما توی wpf مشکل دارم .
همون کد فایل رو آوردم توی wpf پیاده کردم :
private void DataGrid_UserLog_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { System.Windows.Forms.SaveFileDialog SVD = new SaveFileDialog(); if (DataGrid_UserLog.CurrentCell.Equals(5) && e.RowIndex != -1) { if (DataGrid_UserLog.CurrentCell != null && DataGrid_UserLog.CurrentCell.Item != null) { object Item = DataGrid_UserLog.SelectedItem; int Get_NewsID = Convert.ToInt32((DataGrid_UserLog.SelectedCells[0].Column.GetCellContent(Item) as TextBlock).Text); var query_FileName = (from FN in database.News where FN.NewsID == Get_NewsID select FN).ToList(); SaveAttachment(SVD, DataGrid_UserLog, Get_NewsID); //// فراخوانی متد دانلود پیوست از دیتابیس } } }
اما RowIndex رو خطا میده
لطفا راهنماییم کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)