PDA

View Full Version : مشکل در ارسال پارامتر بین window و page



milad_esmaeili
پنج شنبه 23 تیر 1390, 12:05 عصر
سلام من توی پروژه ام یه window دارم که توی اون یه frame انداختم
توی فریم یه page لود میشه موقع اجرا
حالا میخوام از طریق window به تمام کنترل های page دسترسی داشته باشم
و بهشون مقدار بدم
از کلاس page شی ساختم و کنترل ها را شناخت ولی تغییری روی آنها اعمال نمیشه
کسی دلیلشو میدونه؟
ممنونم پیشاپیش

مهدی فرزاد
پنج شنبه 23 تیر 1390, 14:30 عصر
سلام
اگر شما در کد Xaml این Page رو به Frame معرفی کرده باشید با ساختن یک شی از اون Page نمیتونید به کنترل هاش دسترسی داشته باشید چون اون شئ که ساختید در Frame قرارنداره

اما من یک راه ساده پیشنهاد میکنم مثلا من یک Page ساختم به نام Page1 و فرقی هم نمیکنه با کد xaml اونو به frame معرفی کردم با با کد C#
حالا میخوام مثلا TextBlock که توی اون Page هست رو مقدار دهی کنم با کد زیر این کار رو انجام میدم
(this.frame1.Content as Page1).textBlock1.Text = "ok";

اما اگر با کد C# اون رو پر کنید میتونید به شکل زیر هم عمل کنید
Page1 p = new Page1();
frame1.Content = p;
p.textBlock1.Text = "ok";

milad_esmaeili
جمعه 24 تیر 1390, 01:43 صبح
ممنونم واقعا
دوتا سوال دیگه هم داشتم
1- حالا اگه از page هم بخوام به کنترل های window دسترسی پیدا کنم روشش همینه؟؟؟؟؟

2- ارسال متدها و خروجی های کوئری های sql را چطوری بین این دوتا رد و بدل کنم؟؟؟

بازم ممنوم

مهدی فرزاد
جمعه 24 تیر 1390, 23:13 عصر
سلام برای سئوال اول
این لینک رو ببینید مشکل شما رو حل میکنه
http://barnamenevis.org/showthread.php?283507-%D8%A8%D8%B3%D8%AA%D9%86-page&p=1257351&viewfull=1#post1257351

پست 15

و برای سئوال دوم
شما باید مثل روش قبل از Property استفاده کنید و خاصیت مورد نظر رو برای page ایجاد کنید و بعد مقدار مورد نظر رو به اون اختصاص بدید
و یا از اون بخونید
مثلا کد یز یک خاصیت String درست میکنه
public string MyProperty {get; set;};

که این خاصیت به Page شما اضافه میشه و میتونید با ساختن یک شئی از Page بهش دسترسی داشته باشید و هم بهش مقدار بدید و هم ازش مقدار بخونید
توی خود Page هم میتونید بهش مقدار بدید و بخونید
البته این شکل ساده ساخت خاصیت هست