یکی از اهداف بنیادی سیلور لایت و فرم های ارائه دهنده ی ویندوز(
) این است که این توانایی را به برنامه نویس بدهد تا بتواند به آسانی عملیات رابط کاربر را در محفظه ای به کنترل های قابل استفاده برای بارها و بارها تبدیل کند.
شما می توانید کنترل های رابط جدیدی را با استفاده از یکی از کلاس های کنترل موجود ایجاد کنید. (با استفاده از هر یک از کلاس های کنترل مثل کلاس های کنترل پایه یا از یک کنترل دیگر مثل تکست باکس ها و دکمه ها و غیره). به طور متناوب شما می توانید کنترل های قابل استفاده برای کاربر را ایجاد کنید - چیزی که کار را برای استفاده از یک فایل زبان توسعه پذیر متفاوت برنامه برای ساخت رابط کاربر یک کنترل آسان می سازد (و چیزی که کارها را بسیار آسان می سازد).
در قسمت ششم از سری آموزش های من در این وبسایت، نشان دادم که چگونه با استفاده از ویژوال استودیو 2008 و با استفاده از "ایجاد آیتم جدید" و تعریف کردن رابط کاربر در آن یک کنترل جدید برای کاربر ایجاد کنیم.این شیوه بسیار عالی کار می کند در زمانی که شما می خواهید یک رابط کاربر را با قرار دادن محفظه ای به کنترل برای کاربر تبدیل کنید.همچنین شما می توانید این تکنیک را با استفاده از
نیز اجرا کنید.
:استفاده از یک رابط کاربر موجود و تبدبل آن به عنوان یک کنترل برای کاربر
بعضی اوقات شما همیشه نمی دانید که می خواهید یک عملیات رابط کاربر را در محفظه ای به عنوان یک کنترل قابل استفاده برای کاربر تبدیل کنید،تا زمانی که شما واقعاً شروع به تعریف کردن آن بروی یک صفحه یا کنترل بکنید.
برای مثال، ما می خواهیم روی یک فرم کارکنیم،فرمی که به کاربر این توانایی را بدهد تا او بتواند اطلاعات ارسال (مانند آدرس) و صورتحساب را در آن وارد کند.ما احتمالاً کار را با ایجاد رابط کاربر و محفظه هایی برای اطلاعات آدرس شروع می کنیم.برای انجام این کار ما می توانیم یک
به صفحه اضافه کنیم،و صفحه را طرح بندی می کنیم (با 2 ستون و 4 ردیف)، و بعد لیبل ها و تکست باکس ها را در آن قرار می دهیم: مثل شکل زیر

بعد از اینکه کاملاً با دقت این کارها انجام دادیم، احتمالاً می فهمیم که "هی-ما داریم دقیقاً از یک رابط کاربر استفاده می کنیم برای اطلاعات صورتحساب،خوب شاید ما باید یک کنترل کاربر قابل استفاده برای آدرس ایجاد کنیم،پس در این حالت ما می توانیم از تکرار دوری کنیم". ما می توانیم از شیوه ی "ایجاد یک آیتم جدید" در قالب پروژه استفاده کنیم تا یک کنترل خالی جدید برای کاربر ایجاد کنیم و بعد محتویات بالای رابط کاربر را در آن کپی/پیست می کنیم.
با این حال یک ترفند سریع تر برای این کار در این برنامه این است که ما کنترل هایی را که می خواهیم به عنوان کنترل کاربر استفاده کنیم را انتخاب کنیم و روی آنها "کلیک راست" کنیم و گزینه ی "ایجاد کنترل" را انتخاب کنیم: مثل شکل زیر
زمانی که ما گزینه ی "ایجاد کنترل" را انتخاب کردیم برنامه پیامی را به نشان می دهد و از ما درخواست نامی برای ساخت کنترل جدید می کند: مثل شکل زیر

ما نام آن را
می گذاریم و روی دکمه
کلیک می کنیم با این کار برنامه یک کنترل کاربر جدبد که دربردارنده یمحتویاتی است که ما انتخاب کردیم ایجاد می کند: مثل شکل زیر
زمانی که ما بازسازی انجام می دهیم و به صفحه ی اصلی باز می گردیم، مشاهده می کنیم که رابط کاربر با همان ظاهر قبل است، با این تفاوت که آدرس رابط کاربر در محفظه ی
قرار دارد: مثل شکل زیر

ما می توانیم این اولین
را
بنامیم و بعد یک مورد دیگر کنترل کاربر به صفحه اضافه کنیم تا اطلاعات صورتحساب را ثبت کند. ما نام این دومین کنترل کاربر را
می نامیم: مثل شکل زیر
و حالا اگر ما بخواهیم که ظاهر آدرس هایمان را عوض کنیم، ما می توانیم این کار را در جایی دیگر انجام دهیم و آن را برای هر دو کنترل (اطلاعات ارسال و اطلاعات صورتحساب) ثبت کنبم.
:
اتصال آدرس اطلاعات به
حالا ما چند کنترل برای کاربر داریم که آدرس رابط کاربر ما در محفظه ای قرار داده، حالا شروع به ساختن آدرس دیتا مدل کلاس می کنیم که با آن می توانیم آنها را موظف به کار کردن در مقابل هم بکنیم. ما کلاس را به صورت زیر تعریف می کنیم (آموختن خصوصیات خودکار جدید زبان) : شکل زیر

درون فایل کدهای پشت پرده ی فایل ما می توانیم دو نمونه از موضوع آدرس را معرفی کنیم - یکی برای آدرس ارسال و دیگری برای آدرس صورتحساب (برای اهداف این الگو ما آنها را در اطلاعات مصنوعی یا ساختگی اسکان می دهیم). ما بعد به طور برنامه ریزی شده موضوعات آدرس را به آدرس کنترل کاربر اتصال می دهیم.
ما این کار را با تنظیم خاصیت "مفاد اطلاعات"
روی هر کنترل کاربر اختصاص داده شده به مدل اطلاعات آدرس ارسال یا صورتحساب انجام می دهیم: مثل شکل زیر

آخرین قدم ما این است که به طور واضح توضیحات
را درون فایل
اضافه کنیم، که یک رابطه دو طرفه اتصال اطلاعات را بین خصوصیات
که مربوط به کنترل های تکست باکس درون کنترل کاربر و خصوصیات موضوع مدل اطلاعات آدرس که ما به کنترل کاربر ضمیمه کردیم نصب خواهد کرد: شکل زیر
وقتی که کلید
را فشار می دهیم تا برنامه را اجرا کنیم ما حالا به صورت خودکار عملیات اتصال اطلاعات بین موضوعات مدل اطلاعات آدرس و آدرس کنترل کاربر را خواهیم داشت: شکل زیر

بدلیل اینکه ما نوع متغییر
را به صورت
نصب کردبم، تغییراتی که کاربر در تکست باکس ها ایجاد می کند به طور اتوماتیک به موضوعات مدل اطلاعات آدرس بر می گردد. (این کار نیاز به وجود کدی ندارد تاانجلم شود). برای مثال، ما می توانیم آدرس ارسال را تغییر دهیم و به جای آدرس قبلی آدرس جدیدی را جایگزین کنیم،مثلاً آدرس ارسال را به دیزنی لند تغییر دهیم: شکل زیر
اگر ما یک بریک پونت روی رویداد
دکمه ی
قرار دهیم و بعد روی دکمه کلیک کنیم، ما می توانیم ببینیم که چگونه تغییرات تکست باکس بالا به طور خودکار در مدل اطلاعات موضوعی
ما منعکس می شود: شکل زیر

بعد ما میتوانیم رویداد
را اجرا کنیم تا هر طوری که می خواهیم روی مدل اطلاعات موضوعی ارسال یا صورتحساب اصرار بورزیم - بدون اینکه حتی چیزی را در کنترل های رابط کاربر روی صفحه دست کاری یا اصلاح کنیم.
این جدا سازی تمیزی که
و سیلور لایت بین مدل کار و چهره ی ظاهری کار انجام می دهد، کار را برای تغییر رابط کاربر کنترل کاربر آدرس در آینده بدون به روز رسانی حتی یک کد در صفحه اسان می سازد. این همچنین این را ممکن می سازد که اسانتر عملیات واحد تست انجام شود. برای آشنایی بیشتر با واحد تست کردن سیلور لایت به این پست مراجها کنید.
امیدوارم که این مطلب مفید واقع بشود
اسکات