در دوره #F این سایت (^) با نحوه کد نویسی و مفاهیم و مزایای این زبان آشنا شده اید. اما دانستن syntax یک زبان برای پیاده سازی یک پروژه کافی نیست و باید با تکنیکهای مهم دیگر از این زبان آشنا شویم. همان طور که قبلا (فصل اول دوره #F) بیان شد Visual Studio به صورت Visual از پروژههای #F پشتیبانی نمیکند. یعنی امکان ایجاد یک پروژه WPF یا Windows Application یا حتی پروژههای تحت وب برای این زبان همانند زبان #C به صورت Visual در VS.Net تعبیه نشد ...
در پستهای قبلی با Prism و روش استفاده از آن آشنا شدیم (قسمت اول) و (قسمت دوم). در این پست با استفاده از Mef قصد ایجاد یک پروژه Silverlight رو به صورت ماژولار داریم. مثال پیاده سازی شده در پست قبلی را در این پست به صورت دیگر پیاده سازی خواهیم کرد.
تفاوتهای پیاده سازی مثال پست قبلی با این پست:در مثال قبل پروژه به صورت Desktop و با WPF پیاده سازی شده بود ولی در این مثال با Silverlight میباشد؛در مثال قبل از UnityBoots ...
آیا میتوان در یک پروژه های Windows App یا WPF، یک فرم پایه به صورت generic تعریف کنیم و سایر فرمها بتوانند از آن ارث ببرند؟ در این پست به تشریح و بررسی این مسئله خواهیم پرداخت.
در پروژه هایی به صورت Smart UI کد نویسی شده اند و یا حتی قصد انجام پروژه با تکنولوژیهای WPF یا Windows Application را دارید و نیاز دارید که فرمهای خود را به صورت generic بسازید این مقاله به شما کمک خواهد کرد.#Windows Application
یک پروژه از نوع Windows App ...
از ItemsControl برای ارائه مجموعه ای از کنترلها استفاده میشود،در اینجا قرار است از آن استفاده کنیم و یک کنترل پویا ایجاد کنیم.برای
مثال در نظر بگیرید،قرار است یک DropDownPanel ایجاد کنیم و
در جاهای مختلف برنامه کنترلهای مختلفی را درون آن قرار بدهیم.برای ایجاد آن به صورت زیر عمل
میکنیم:<UserControl x:Class="MySystem.Common.Controls.DropDownPanel"
…
x:Name="This">
<Grid> ...
در پست قبلی توضیح کلی درباره فریم ورک Prism داده شد. در این بخش قصد داریم آموزشهای داده شده در پست قبلی را با هم در یک مثال مشاهده کنیم. در پروژههای ماژولار طراحی و ایجاد زیر ساخت قوی برای مدیریت ماژولها بسیار مهم است. Prism فریم ورکی است که فقط چارچوب و قواعد اصول طراحی این گونه پروژهها را در اختیار ما قرار میدهد. در پروژههای ماژولار هر ماژول باید در یک اسمبلی جدا قرار داشته باشد که ساختار پیاده سازی آن میتواند کاملا متفاوت با پیاد ...
امروزه تقریبا تمام کسانی که پروژههای WPF یا Silverlight رو توسعه میدهند با مدل برنامه نویسی MVVM آشنایی دارند. فریم ورکهای مختلفی برای توسعه پروژهها به صورت MVVM وجود دارد. نظیر:MVVM LightPrismCaliburnCinchWAFCatelOnyxMVVM helpersو...هر کدوم از فریم ورکهای بالا مزایا، معایب و طرفداران خاص خودشون رو دارند(^) ولی به جرات میتونیم Prism رو به عنوان قویترین فریم ورک برای پیاده سازی پروژهای بزرگ و قوی و ماژولار با تکنولوژی WPF یا Silverli ...
در این مقاله به بررسی اولیه فریمورک Catel و برخی ویژگیهای آن خواهیم پرداخت.همانطور
که میدانید فریمورکهای متعددی برای MVVM به وجود آمده اند، مانند MVVM
Light یا Caliburn و Chinch و ... که هر کدام از آنها دارای ویژگی هایی
میباشند اما Catel تنها یک فریمورک برای MVVM نیست بلکه دارای قسمتهای
دیگری مانند کنترلهای اختصاصی و سرویسهای متعدد و پرکاربرد
و Extensionهای مفید و ... نیز میباشد که کار توسعه یک برنامه MVVM را
ف ...
در بعضی مواقع نیاز است که یک متد از یک کنترل درون XAML فراخوانی شود. برای مثال لازم است یکی از متدهای یک کنترل در یک استایل فراخوانی شود.
یکی از روشهای انجام این کار استفاده از خصوصیتهای پیوست شده( AttachedPropery) است. شیوهی کار به این صورت است که یک خصوصیت از نوع Bool ایجاد میکنیم. هنگامیکه مقدار این خصوصیت تغییر کند یک رویه فراخوانی میشود که کار فراخوانی متد مورد نظر را انجام میدهد:public class SelectAllBehavior
{
...
در WPF و Silverlight میتوان با استفاده از مقید سازی (DataBinding) کنترلها را به منبعهای داده متصل
کرد. این منابع به چند شیوه مختلف مانند استفاده مستقیم از خصوصیتSource قابل دسترسی هستند. یکی از این روش ها، ارث بری از DataContext نزدیکترین والد است.همانطور که گفته شدDataContext هر
کنترل، توسط تمامی فرزندان آن قابل دسترسی است. اما در بعضی
مواقع، زمانیکه کنترل فرزند، بخشی از visual یا logical tree نباشند، دسترسی به DataContext وجو ...
UIدر نهایت
نوبت به طراحی و کدنویسی UI میرسد تا بتوانیم
محصولات را به کاربر نمایش دهیم. اما قبل از شروع باید موضوعی را یادآوری کنم. اگر
به یاد داشته باشید، در کلاس ProductService موجود در لایهی Domain، از طریق یکی از روشهای الگوی Dependency Injection به نام Constructor
Injection، فیلدی از نوع IProductRepository را مقداردهی نمودیم. حال
زمانی که بخواهیم نمونه ای را از ProductService ایجاد نماییم، باید به
عنوان پارامتر ورودی سازن ...