همانطور که اطلاع دارید که طراح xaml و Intellisense در Visual Studio، توانایی شناسایی Resources هایی را که از Libraryهای خارجی میآیند، ندارد. یعنی اگر شما بخواهید از StaticResourceها یا DynamicResourceها استفاده کنید، با یک لیست خالی در Intellisense مواجه خواهید شد و مجبور هستید تا نام Resource را خودتان بطور کامل تایپ کنید. این مشکل بیشتر بخاطر ساختار MergedDictionaryها و تعداد بالای فایلهای Resource پیش میآید. برای حل این مشکل چندی ...
در مقاله قبلی ، درباره نحوه نصب و راه اندازی
اولین پروژه Xamarin Forms کمی
صحبت کردیم. حال وقت آن رسیدهاست که درباره ساختار اپلیکیشنهای Xamarin Forms بیشتر بحث کنیم. در سیستم عاملهای مختلف، رابطهای کاربری با
اسامی مختلفی مانند Control ، Widget ، View و Element صدا
زده میشوند که هدف تمامی آنها ...
من خودم به شخصه هنوز تا به حال با WPF کار نکردهام؛ اما قصد دارم از امروز در هر فرصتی که پیش میآید به یادگیری این فناوری پر سر و صدا بپردازم. از آنجا که مجموعهی مرتب و به ترتیبی مثل MVC و EF در این زمینه در سایت موجود نبود، تصمیم گرفتم که خودم استارت این کار را بزنم که باعث میشه هم خودم بهتر یاد بگیرم و هم این سری برای افراد تازه کار موجود باشه. آشنایی اولیه
WPF مخفف عبارات Windows Presentati ...
کاربران بیشتر برنامههای فارسی تمایل دارند که توسط کلیدEnter درون فرمها حرکت کنند.در برنامههای WPF و مخصوصا زمانی که شما از الگوی MVVM استفاده میکنید ،انجام این کار اگر از روشهای مناسب استفاده نکنید تا حدودی سخت میشود. برای حرکت روی TextBoxها و کنترلهای مشابه میتوانید این کار را به راحتی با Register کردن رویداد مربوط به آن نوع کنترلها توسط EventManager یک بار در ابتدای برنامه انجام دهید. public partial class App : App ...
MarkupExtension ها قبلا در اینجا توضیح داده شده اند. یکی از MarkupExtensionهای از پیش تعریف شده x:Static است که برای مقداردهی یک خصوصیت در XAML با یک مقدار استاتیک استفاده میشود.اگر بخواهید از یک ثابت(constant)،یک خصوصیت استاتیک(static property)، یا یک مقدار از یک enumeration، برای مقداردهی یک خصوصیت در XAML استفاده کنید باید از این MarkupExtension استفاده کنید.
برای مثال برای یک استفاده از یک خصوصیت استایک به صورت زیر عمل ...
شاید تا به حال در یک برنامه سازمانی نیاز به Bind کردن یک Enum به کنترلهای XAML به چشمتان خورده باشد ، روشی که من برای این کار استفاده میکنم توسط یک Markup Extension به صورت زیر است :public class ByteEnumerationExtention : MarkupExtension
{
public ByteEnumerationExtention(Type enumType)
{
this.enumType = enumType;
}
private Type enumType;
public Type EnumType
...
اغلب در حین Bind کردن Propertyها در XAML به مشکل Bind نشدن بر میخوریم. من معمولا از روش زیر استفاده میکنم: public class DatabindingDebugConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
Debugger.Break();
return value;
}
pu ...
Markup Extensionها برای مواردی استفاده میشوند که قرار است مقداری غیر از یک مقدار ثابت و یک نوع قابل شناسایی در XAML برای یک value تنظیم شود. تمام مواردی در XAML که درون {} قرا میگیرند همان Markup Extensionها هستند. مانند Binding و یا StaticResoiurces.
علاوه بر Markup Extensionهای از پیش تعریف شده در XAML، میتوان Markup Extensionهای شخصی را نیز تولید کرد. در واقع به زبان سادهتر Markup Extension برای تولید سادهی دادههای پیچیده در ...