PDA

View Full Version : سوال: ارسال پارامتر از usercontrol به فرم



ro3vayedel
پنج شنبه 15 آبان 1393, 21:51 عصر
با سلام
دوستان یک یوزرکنترل دارم که کلی آبجکت توش هست از جمله یک دیتاگریدویو که مربوط میشه به اطلاعات اشخاص...
توی فرم اصلی TabControl گذاشتم و میخوام به ازای هر تب این یوزرکنترل رو ایجاد کنم.تا اینجا مشکلی ندارم.
اما سوالم
میخوام وقتی که شخصی توی دیتاگرید ویو انتخاب میشه همون لحظه title تب به همون نام تغییر کنه...نمیدونم چطوری بین event Selection change دیتاگریدویوی توی یوزرکنترل و فرمی که یوزرکنترل داخلشه ارتباط برقرار کنم.
امیدوارم منظورم رو خوب رسونده باشم.

parvizwpf
پنج شنبه 15 آبان 1393, 22:41 عصر
http://www.codeproject.com/Questions/657086/Pass-Data-from-User-Control-To-Windows-Form

ro3vayedel
پنج شنبه 15 آبان 1393, 23:04 عصر
نه من مشکلی تو پاس دادن اطلاعات ندارم میتونم با لودشدن فرمم نام انتخاب شده توی دیتاگریدویوی یوزرکنترلم رو به فرمم انتقال بدم و متقابلن title تب کنترلم رو باهاش set کنم...
مشکل من چیز دیگه ایه...
میخوام با رویداد selection change توی usercontrol اون انتخاب پاس داده بشه...
یعنی دنبال ارتباط بین یک رویداد توی یوزرکنترل و فرم هستم.

ro3vayedel
پنج شنبه 15 آبان 1393, 23:22 عصر
اصلا بذار یکجور دیگه بپرسم یک متغیر رشته ای دارم
public static string St1
میخوام به محض تغییر مقدار این متغیرSt1 یک دستور خاصی اجرا بشه...یعنی مثل رویداد textchange واسه تکست باکس...اما واسه یک متغیر...
یعنی واسه یک متغیر رویداد textchange بسازیم.

parvizwpf
جمعه 16 آبان 1393, 09:52 صبح
خب خود گرید رویدادی بنام CellClick داره

malekabadi_a
جمعه 16 آبان 1393, 12:02 عصر
با سلام و عرض خسته نباشید.
شما باید متغیرتون رو به این نحو تعریف کنید و برای اون یه پراپرتیس تعریف کنید به این شکل :

private string _St1;
public static string St1
{
get
{
return _St1;
}
set
{
if (value != _St1)
{
_St1 = value;
}
}
}


بعد شما میتونین توی قسمت Set این properties که تعریف میکنین , در بخشی که با if کنترل میکنین که مقداری که به سمت این properties میاد با مقدار قبلی فرق داشته باشه , هر event مورد نظر یا event هایی که خودتون ایجاد می کنید رو فراخوانی کنید.
امیدوارم کمک کنه
با تشکر

ro3vayedel
جمعه 16 آبان 1393, 14:49 عصر
با سلام و عرض خسته نباشید.
شما باید متغیرتون رو به این نحو تعریف کنید و برای اون یه پراپرتیس تعریف کنید به این شکل :

private string _St1;
public static string St1
{
get
{
return _St1;
}
set
{
if (value != _St1)
{
_St1 = value;
}
}
}


بعد شما میتونین توی قسمت Set این properties که تعریف میکنین , در بخشی که با if کنترل میکنین که مقداری که به سمت این properties میاد با مقدار قبلی فرق داشته باشه , هر event مورد نظر یا event هایی که خودتون ایجاد می کنید رو فراخوانی کنید.
امیدوارم کمک کنه
با تشکر


با سلام کپی کردم دستورات بالا رو St1_ رو نمیشناسه

malekabadi_a
جمعه 16 آبان 1393, 20:42 عصر
با سلام کپی کردم دستورات بالا رو St1_ رو نمیشناسه

دوست عزیز چون این کد ها در اینجا بد درج شدند , لطفا از اینجا کپی نکنید . شما ابتدا یه متغیر استرینگ private تعریف کنید . بعد یه properties به همون نحوی که گفتم ایجاد کنین . لطفا نتیجش رو بگین
ممنون