WPF Theme (skin) Service Pattern Part 1

31 בMay 2014

אפליקציות רבות תומכות בהחלפת מראה ו\או התנהגות בלחיצה על כפתור. כדי שהתכנית שלכם תתמוך ביכולת כזאת יש צורך בתכנון מראש. זה אולי לא ממש Pattern אבל די נפוץ באפליקציות בכל פלטופרמה שהיא הרעיון הוא להתאים מראה שונה למשתמש בלחיצה אחת. הבעיה פה היא: א. טכנית החלפת UI (נניח צבע רקע כדוגמא בסיסית). ב. אני לא יכול מהVM לפנות לView כי אז אני שובר ארכיטקטורה! אבל נתעלם מזה כרגע למקרה ששכחנו את יסודות הMVVM הקשר בין VM ל VIEW הוא באמצעות binding ואין כיום טכנולוגיית binding שיודעת להחליף resource. בצורה ישירה (על Dynamic נדבר בהמשך) בוא נניח שיש לי מצב Dark ומצב Light לתכנית שלי, נתחיל...
אין תגובות

C# Serialization Guide Part 8 – Zip files

27 בMay 2014

Writing to an zip file is very easy , this is actually required some algorithm to build the internal file hierarchy, the Zip/Rar file is built from what we called Entries , and those entries are kept like a stack one above each other so our job is to build this stack , also if required we need to extract .the files from it .I am definitely not ganna writing the full demo, only a starter using the new ZipFile API ;ZipFiles usage could be one of two major tasks (or both) .1 .compress to Zip files is a solution for a large scale...
אין תגובות

WPF ViewModel First, set Binding from code after loading

20 בMay 2014

,This is probably not a rare situation :The Scenario is as following .1 ,we have a View which contain a CollectionView of any type .2 .the collection's SelectedItem is bound to some ViewModel Property lets call it MySelectedItem .3 :the View DataContext get initialized during ViewLoading like 1: public MyView(MyViewModel viewModel) 2: { 3: InitializeComponent(); 4: this.Loaded += (s, e) => 5: ...
2 תגובות

WPF Custom Controls Part 11 scrollable TabControl B

14 בMay 2014

ננסה לבנות פקד שמכיל את הלוגיקה שעוטפת את הטאבים ויודע לגלול ביניהם. יכולות להיות לנו שלש לוגיקות בסיסיות: 1.לחשוף Dependency Property שאיתו נוכל לאפיין מה רוחב כל טאב, ועפ"י זה לגלול. זה אמור להיות הפתרון הקל ביותר, 2. לקבל מתוך העץ הויזואלי את הרוחב הנדרש, נניח של כל טאב כאן הזהירות היא חובה , כי נצטרך להניח שאכן יש לנו טאבים והמבנה הויזואלי הוא נורמלי, 3. לקבל מתוך העץ הויזואלי את הרוחב של טאב כלשהו בהנחה שכל הטאבים זהים ברוחב ה Tab Header שלהם ואז לגלול בהתאם. בכל מקרה אחת הבעיות המרכזיות שנצטרך לתמוך בה (או להתעלם) היא בשינוי...
אין תגובות

WPF Custom Controls Part 10 scrollable TabControl A

את הרעיון שאציג בפוסט זה כל מי שעסק בעיצוב אפליקציות מכיר, יש לי איזור מסויים שמציג סדרת פקדים שכל אחד מפנה לאיזור אחר (כדוגמא קלאסית נדבר על Tab-control), ואין די מקום להציג את כל הטאבים, אז אפשר לערום את הטאבים לשורה כפולה שזה עיצוב מיושן ואפשר גם לנסות את העיצוב שנציג כאן עם שני לחצני פעולה לשני צידי הטאבים שנותנים לנו לגלגל תוכן נעלם של טאבים חסרים שאין לנו די מקום בתצוגה להכיל אותם. אז הפתרון הפשוט נובע מהרעיון הפשוט שבWPF כל דבר יכול להכיל כל דבר לכן אם פשוט נעטוף Tab-Control באיזשהו ListBox הוריזונטלי הכל יעבוד. קוד רלוונטי ייראה כך: <Window.Resources> ...
תגובה אחת

C# Serialization Guide Part 7 – Known Types

2 בMay 2014

A special attribute that can be added to any serialized object (where using DataContractSerialization) There is a few ways to demonstrate the knownType usage, i myself check out a few examples ..around the net and they where kind of so so ,In my example we will try to put inside a serialized object a referenced member of type Object .meaning not a final implementation .it is relevant when Either you writing a base service or not yet implement the reference object :The code structure may be like that public class MyData { public int PublicID {...
אין תגובות