Search Results

Search found 17192 results on 688 pages for 'geeks with blogs'.

Page 200/688 | < Previous Page | 196 197 198 199 200 201 202 203 204 205 206 207  | Next Page >

  • First 100 Registrations to Prairie Dev Con Get a Free 1 Month Subscription to TekPub!

    - by D'Arcy Lussier
    Thanks to our generous friends at TekPub, the first 100 registrants to the Prairie Developer Conference will receive a complimentary 1 month subscription to TekPub’s content! We’ll also be giving away 2 year long subscriptions at the conference as well! TekPub is the creation of Rob Conery and James Avery. They offer web-based learning videos covering a wide variety of topics that span Microsoft, Ruby, Open Source, Linux, Best Practices, and more…there’s literally an embarrassment of technology learning riches available through their site at very affordable costs! So check out TekPub today, and make sure to register for Prairie Developer Conference early to take advantage of the 1-month subscription offer!

    Read the article

  • Control Parameters and DropDownList Text

    - by Bunch
    This is something that I rarely need to do, grab a DropDownList’s selected item’s text for use in a datasource’s ControlParameter. To allow for this use SelectedItem.Text instead of the more common SelectedValue for the PropertyName. <asp:ControlParameter ControlID="ddlStuff" Name="stuffName" Type="String" PropertyName="SelectedItem.Text" /> The reason for using this is for text comparison. On rare occasions you may need to check the text against a list where the SelectedValue just does not help. Technorati Tags: ASP.Net

    Read the article

  • Another year of being a Microsoft MVP

    - by Vincent Maverick Durano
    Yes, Just got an email from Microsoft that I have been re-awarded as an ASP.NET/IIS Microsoft MVP for 2012. The last year for sure was very busy with projects and I’m glad I made it again and able to contribute to the ASP.NET community. It is really a big surprise to me! Wohooo!! =) I am looking forward to contribute more in the community. BIG thanks to Microsoft, my MVP Lead Lilian Quek, family, friends, readers, and everyone who has supported me!!!

    Read the article

  • Using Enums for comparing string values in Switch

    - by kaleidoscope
    Problem Scenario: There is an enum keeping track of operations to be performed on a table Public Enum PartitionKey { Createtask, Updatetask, Deletetask } User is entering the value for the operation to be performed and the code to check the value entered in switch case. Switch (value) {           case PartitionKey.Createtask.ToString():          {          Create();          break;          }          case PartitionKey.Updatetask.ToString():          {           Update();           break;          }          case PartitionKey.Deletetask.ToString():          {           Delete();          break;          } } and it displays as error as “.” Solution: One of the possible implmentation is as below. Public Enum PartitionKey: byte { Createtask, Updatetask, Deletetask } Switch ((PartitionKey)(Int32.Parse(value))) {          case PartitionKey.Createtask:          {                   Create();                   break;          }          case PartitionKey.Updatetask:          {                    Update();                   break;          }          case PartitionKey.Deletetask:          {                    Delete();                   break;          }          default:          {                   break;          } } Technorati Tags: Enum,A Constant Value is required,Geeta,C#

    Read the article

  • We really only have ONE rule...

    - by Chris G. Williams
    Had to show someone the door today... bummer.     At Big Robot Games we really only have one rule and it's not all that complex:   If you're going to hang out here all day, you should satisfy AT LEAST one of the following criteria: 1) You buy some food and/or drinks. 2) You occasionally buy product. 3) You play as part of a sanctioned tournaent or gaming group. 4) You act like you have some sense (i.e. have manners.)   We would love it if you manage to do all of the above, of course, but we're really perfectly content to settle for only getting a 1-2 of them at a time.    We don't have a problem with people bringing food in, and we understand that you aren't going to buy a game every time you come here. And yes, we know that people enjoy hanging out here with their friends. We can even overlook your odd quirks and personality issues, provided you're spending a little money once in a while (this IS a BUSINESS, after all.)   However... if you can't manage to do ANY of the things I listed above, and then you get lippy with me about it, well... it's time to say goodbye.

    Read the article

  • New Blog Location

    - by Kelly Cassidy
    It's been almost 4 years since I last logged into this site, but when I search my name I still rank high for people searching for me! I didn't realize I was so popular!Well, I've obviously since abandonded this blog and don't really want to maintain a blog in 2 locations now that I am getting back into it. (At least, not at this time - if I can figure out how to cross-post things may change...) I can instead be found at http://mindfulsanity.com where I have posted more frequently in the last few months on a few things web and other experiences and will continue to do so. I hope to do 2 posts per week, time permitting, and topic permitting. Enjoy!

    Read the article

  • SSRS optional parameters settings

    - by Natasa Gavrilovic
    Recently I had to create couple SQL Server Reports (SSRS) with optional parameters built in. It took me a while to refresh memory how this can be done. It was very simple to create reports and processes behind, but connecting these two were are little bit challenging – stored procedure was tested and worked fine, but when the report was passing optional parameters it didn’t returned expected results. After tweaking SQL stored procedures and reports parameter options, the following approach turn to be the winning one. 1) Defining report parameters: From Menu bar select ‘View’ and ‘Report Data’ Newly open window should have ‘Parameters’ folder display Right click on this folder and select ‘Add new parameter...’                             Default values need to be added from a query                 A query values need to include ‘’ (empty string) – as highlighted                   2) SQL stored procedure should have CASE statements inside WHERE and it was the only way that a report was getting correct results back.

    Read the article

  • Is The Ease Of Windows Phone Development Ruining Its Image

    - by Tim Murphy
    I was reading an article on Mashable recently by a long time iPhone user who is living solely on a Lumia 920 at the moment and giving her assessment.  One thing that struck a nerve with me was her describing the Windows Phone ecosystem as immature.  She wasn’t saying this because of the number of apps or the big names like most people do.  She means the quality of the apps in the store. This hit a nerve with me.  I find it hard to believe that the majority of app on iOS are of any higher quality than any other platform.  I believe in any ecosystem you are going to find some high end, high quality apps, but the majority by default will be from people who are trying to solve a problem but do not have the resources to have top graphics and full blown testing.  There will also be a large number that are just there trying to trick you into giving up some cash. Does any of the mean that we shouldn’t take notice of this complaint?  Of course not!  We should always strive to publish the best quality apps possible.  Don’t do things like leaving default app icons and backgrounds.  Put a little effort into your design.  You should also spend as much time as possible ensuring against crashes and giving the user the best experience possible.  Think through your apps organization and navigation.  Go the extra step of putting it into beta and letting select people use it and give you feedback before going to full release. Remember, if we want people to appreciate the Windows Phone platform we have to make sure we give them apps that they are going to enjoy using. del.icio.us Tags: Windows Phone,iPhone,iOS,Nokia,Lumia 920,Mashable

    Read the article

  • Hidden Windows 7 Wallpaper

    - by BizTalk Visionary
    To find the hidden wallpaper: Type globalization in a search of your C: drive. The only result should be a folder located in the main Windows directory, and you should only be able to see ELS and Sorting folders nested here. Now search for MCT in the top-right search bar. This will display five new unindexed folders, each corresponding to a different global region. Browse these folders for some extra themes and wallpapers specific to Australia, USA, South Africa, and Canada. From here you can select a new wallpaper.

    Read the article

  • Directory Synchronization

    - by Robert May
    We’re using federated security with Office 365 and everything was running swimmingly and then I started getting the following error when trying to synchronize security information: “An unknown error occurred with the Microsoft Online Services Sign-in Assistant. Contact Technical Support.” Great.  Very descriptive.  In the event viewer, you get a bit more detail: GetAuthState() failed with -2147186688 state. HResult:0. Contact Technical Support.  (0x80048831) If you do some searching, you’ll find that there are a couple of MSDN articles about this error.  In KB2502710 you’re told to reinstall sign in assistant.  This one requires a reboot.  In KB2517393 you’re told to make sure that your proxy settings are working correctly.  I’m not using a proxy and everything was set up right. Rather frustrating and I couldn’t figure out what was going on.  What finally keyed me in was the error number being presented.  Rather than 80048800, which is listed in the second article, I was getting 80048831.  I did a quick search and found something that was seemingly unrelated here.  Could it really be so simple as the password having expired for my synchronization user? Turns out, it was that simple.  Once the password was reset and reentered, everything worked great again. Since this isn’t a user that humans use, I also don’t want the password to expire.  You can find the instructions for that (use Set-MsolUser –UserPrincipalName <user ID> –PasswordNeverExpires $true) here. Technorati Tags: Office 365

    Read the article

  • C# Image Download

    - by Nouman Zakir
    A C# class that makes it easier to download images from the web. Use the following code in your program to download image files such as JPG, GIF, PNG, etc from the internet using WebClient class. using System;using System.Drawing;using System.Drawing.Imaging;using System.IO;using System.Net;public class DownloadImage { private string imageUrl; private Bitmap bitmap; public DownloadImage(string imageUrl) { this.imageUrl = imageUrl; } public void Download() { try { WebClient client = new WebClient(); Stream stream = client.OpenRead(imageUrl); bitmap = new Bitmap(stream); stream.Flush(); stream.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } } public Bitmap GetImage() { return bitmap; } public void SaveImage(string filename, ImageFormat format) { if (bitmap != null) { bitmap.Save(filename, format); } }}

    Read the article

  • Enterprise Portal Issue with the Ax Demo VPCs

    - by ssmantha
    Microsoft’s Ax Demo VPC is basically configured for a static IP address 192.168.0.1, this is due to the fact that the VPC has Domain Controlller configured in it which requires a static IP. When we put this VPC on a network with a different subnet and change the IP you can observer that the site http://sharepoint and http://sharepoint/EP cease to function and show “Page Not Found” errors in the browser. This is mainly due to the DNS configuration which is not updated. Below is the screen shot of the changes that needs to be done to make the site functioning properly. Change the following entries in the Forward Lookup Zones of DNS management: These websites default, SharePoint and projectserver are all mapped to a single port in the IIS i.e. port number 80. These websites are recognised with host headers. These host headers are configured in DNS with incorrect IP address entries in DNS when you change the IP address of the VPC. Just change these values to point to the Local Loop Adapter (127.0.0.1) and change the DNS to point to this address in the TCP/IP properties as shown below: This will resolve the issue with the website rendering. Initially you may get time out errors while browsing these website. be patient and try again this would work.

    Read the article

  • Dynamic (C# 4.0) &amp; Var in a nutshell.

    - by mbcrump
    A Var is static typed - the compiler and runtime know the type. This can be used to save some keystrokes. The following are identical. Code Snippet var mike = "var demo"; Console.WriteLine(mike.GetType());  //Returns System.String   string mike2 = "string Demo"; Console.WriteLine(mike2.GetType()); //Returns System.String A dynamic behaves like an object, but with dynamic dispatch. The compiler doesn’t know anything about it at compile time. Code Snippet dynamic duo = "dynamic duo"; Console.WriteLine(duo.GetType()); //System.String //duo.BlowUp(); //A dynamic type does not know if this exist until run-time. Console.ReadLine(); To further illustrate this point, the dynamic type called “duo” calls a method that does not exist called BlowUp(). As you can see from the screenshot below, the compiler is reporting no errors even though BlowUp() does not exist. The program will compile fine. It will however throw a runtimebinder exception after it hits that line of code in runtime. Let’s try the same thing with a Var. This time, we get a compiler error that says BlowUp() does not exist. This program will not compile until we add a BlowUp() method.  I hope this helps with your understand of the two. If not, then drop me a line and I’ll be glad to answer it.

    Read the article

  • C# double &amp; nary for loops

    - by MarkPearl
    Something that I wasn’t aware was possible in C# was double for loops… they have the following format. for (int x = 0, y = 0; x < 10; x++, y=x*2) { Console.Write("{0} ", y); } Console.ReadLine(); This would give you the following output… 0 2 4 6 8 10 12 14 16 18 In fact you can use as many variables as you want, the following would also be valid… for (int x = 0, y = 0, z = 10; x < 10; x++, y=x*2) { Console.Write("{0} ", z); } Console.ReadLine();

    Read the article

  • World Cup 2011 WP7 Application

    - by subodhnpushpak
    I recently posted an Windows Phone Application on marketplace. Actually, the application is combination of two of things I like – Cricket and windows phone 7!! Cricket world Cup 2011 is about to start and its going to be full of action. Just that I don’t miss (and you don’t miss) the excitement I decided to build a WP7 app. The app has schedule of all the 49 matches and it provides all important information about each match / venue / group and even team members along with their pics. See below pics for an understanding: The above pics shows the app in action in both dark and light modes!!! The application is free to download from market place. Please do share your thoughts / ideas to make it better… Let the game begin…..

    Read the article

  • SharePoint Saturday Huntsville Wrap Up

    - by Mark Rackley
    So, Cathy Dew (@catpaint1) and company put on a great SharePoint Saturday event this past weekend. I got to hang out with some old friends and meet some new ones. I’d list you all, but I’d undoubtedly miss someone and don’t want to offend anyone.  Although I find it odd that I see @MossLover now more since she moved to New Jersey than when she lived next door in Kansas City… what’s up with that? Anyway, Cathy did a tremendous job organizing the event.  Everything went smoothly and everyone had a great time. Maybe I can talk her into organizing the rest of SharePoint Saturday Ozarks on June 12th… you know that’s coming up? right? While you’re here why not go ahead and register right now at: http://spsozarks.eventbrite.com/  Yes.. that was a shameless plug… I did my default presentation on “Wrapping Your Head Around the SharePoint Beast”. This continues to be my most popular presentation. I try to tweak it every time and I always have fun doing it. I get to pick on people and they pick on me back, but I always manage to learn something new when I present it. I had a great interactive crowd and they didn’t throw anything at me.  All in all I consider it a success.  Thanks for coming if you attended!  You can get the slides here:  SharePoint Saturday Huntsville - Wrapping Your Head Around the SharePoint Beast Next up for me is SharePoint Saturday DC on May 15th.  Wow this is going to be a huge event with space for 1500 attendees.. no, that is not a typo!  Stop me and say hi if you are able to make it!!

    Read the article

  • D&rsquo;Arcy&rsquo;s Book Club - The New Strategic Selling

    - by D'Arcy Lussier
    The New Strategic Selling Miller and Heiman Amazon.ca Amazon.com Chapters Everybody is a salesmen. Every day, without knowing it, we sell something to someone. Now, the typical vision people think of when they hear the word “sales” is the sleazy used car salesperson who does whatever they can to get you to buy the clunker on their lot. But selling is not an action tied to money and products. Selling is about convincing people to see your point of view and act on it. If you want your company to cover a trip to a conference, you may have to sell the idea to your boss. If you want to buy that new big screen TV, you have to sell the idea to your significant other. If you want to go on a weekend fishing trip with the boys you might be called in to help sell the idea to your buddies wife. We all sell, but we don’t all sell very well. So enter The New Strategic Selling, a book based on the sales course put on by the Miller-Heiman group. In fact, this isn’t really a “New” strategy to selling as its been around for a number of years. But the concepts they present, the ideas about selling, these are still very radical based on what most of us have experienced. Gone are the high pressure, win at all cost, GlenGarry-GlenRoss style of sales…instead the book presents a framework to switch to need-based selling. It’s the idea that instead of going in raving about a product or service, you build a relationship where the buyer expresses what their needs are and your response is to present a solution that best fits that need. Instead of focussing on the amount of money you can squeeze out of a client, you focus on whether everyone wins, that they receive win-results from the engagement, that repeat business is developed over time delivering value over and over again. The great thing about the book is that what it teaches…things like how to identify different buying influencers, how to prepare for meetings, techniques to solicit information about what the buyer is really thinking/feeling…these things are entirely applicable in *any* situation that you need to sell to someone…and remember: selling is convincing people to see your point of view and act on it. So that new big screen TV you want to buy but need to convince your wife on? This book can help you. That training opportunity you want your company to send you on? This book can help you. The upgrade to your community park that you want to lobby the local civic authorities for? This book can help you. The book is a bit wordy. I found that the length could have been reduced and the points still have gotten across. That’s really the only knock that I have though; the insight that it provides is so worthwhile that having to chew through extra words is well worth it. You definitely don’t have to be a professional salesperson to benefit from this book. Rating: 4/5

    Read the article

  • C# Dev Challenge Part 1 of n &ndash; Beginner Edition

    - by mbcrump
    I developed this challenge to test one’s knowledge of C Sharp. I am planning on creating several challenges with different skill sets, so don’t get mad if this challenge doesn’t well challenge you... I noticed that most people like short quizzes so this one only contains 5 questions. All of the challenges are clear and concise of what I am asking you to do. No smoke and mirrors here, meaning that none of the code has syntax errors. The purpose of this exercise is to test several OOP concepts and see how much of the C# language you really know. Question #1 – Lets start off Easy… Will the following code snippet compile successfully? What does this question test? - Can this compile without a namespace? Do you have to have an entry point of “static void Main()”? class Test { static int Main() { System.Console.WriteLine("Developer Challenge"); return 0; } } Answer (select text in box below): Yes, it will compile successfully. Question #2 – What is the value of the Console.WriteLine statements? What does this question test? – Do I understand reference types/value types? If a variable is declared with the @ symbol and its not a reserved keyword does the application compile successfully? using System; internal struct MyStruct { public int Value; } internal class MyClass { public int Value; } class Test { static void Main() { MyStruct @struct1 = new MyStruct(); MyStruct @struct2 = @struct1; @struct2.Value = 100; MyClass @ref1 = new MyClass(); MyClass @ref2 = @ref1; @ref2.Value = 100; Console.WriteLine("Value Type: {0} {1}", @struct1.Value, @struct2.Value); Console.WriteLine("Reference Type: {0} {1}", @ref1.Value, @ref2.Value); } } Answer (select text in box below): Value Type: 0 100 Reference Type: 100 100 Question #3 – What is the value of the Console.WriteLine statements? What does this question test? – Can 2 objects reference the same point in memory? using System; class Test { static void Main() { string s1 = "Testing2"; string t1 = s1; Console.WriteLine(s1 == t1); Console.WriteLine((object)s1 == (object)t1); } } Answer (select text in box below): True True Question #4 – What is the value of the Console.WriteLine statements? What does this question test? – How does the “Stack” work – LIFO or FIFO?   using System; using System.Collections; class Test { static void Main() { Stack a = new Stack(5); a.Push("1"); a.Push("2"); a.Push("3"); a.Push("4"); a.Push("5"); foreach (var o in a) { Console.WriteLine(o); } } } Answer (select text in box below): 5 4 3 2 1 Question #5 – What is the value of the Console.WriteLine statements? What does this question test? – Array and General Looping Knowledge. using System; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { int[] J_LIST = new int[5] { 1, 2, 3, 4, 5 }; int K = 10; int L = 5; foreach (var J in J_LIST) { K = K - J; L = K + 2 * J; Console.WriteLine("J = {0, 5} K = {1, 5} L = {2, 5}", J, K, L); } Console.ReadLine(); } } } Answer (select text in box below): J = 1 K = 9 L = 11 J = 2 K = 7 L = 11 J = 3 K = 4 L = 10 J = 4 K = 0 L = 8 J = 5 K = -5 L = 5 Stay Tuned for more challenges!

    Read the article

  • EF Doesn't Like Same Named Tables

    - by Anthony Trudeau
    Originally posted on: http://geekswithblogs.net/tonyt/archive/2013/07/02/153327.aspxIt's another week and another restriction imposed by the Entity Framework (EF). Don't get me wrong. I like EF, but I don't like how it restricts you in different ways. At this point you may be asking yourself the question: how can you have more than one table with the same name?The answer is to have tables in different schemas. I do this to partition the data based on the area of concern. It allows security to be assigned conveniently. A lot of people don't use schemas. I love them. But this article isn't about schemas.In the situation I have two tables:Contact.PersonEmployee.PersonThe first contains the basic, more public information such as the name. The second contains mostly HR specific information. I then mapped these tables to two classes. I stuck to a Table per Class (TPC) mapping, because of problems I've had in the past implementing inheritance with EF. The following code gives you the basic contents of the classes.[Table("Person", Schema = "Employee")]public class Employee {   ...   public int PersonId { get; set; }   [ForeignKey("PersonId")]   public virtual Person Person { get; set; }}[Table("Person", Schema = "Contact")]public class Person {   [Key]   public int Id { get; set; }   ...}This seemingly simple scenario just doesn't work. The problem occurs when you try to add a Person to the DbContext. You get an InvalidOperationException with the following text:The entity types 'Employee' and 'Person' cannot share table 'People' because they are not in the same type hierarchy or do not have a valid one to one foreign key relationship with matching primary keys between them..This is interesting for a couple of reasons. First, there is no People table in my database. Second, I have used the SetInitializer method to stop a database from being created, so it shouldn't be thinking about new tables.The solution to my problem was to change the name of my Employee.Person table. I decided to name it Employee.Employee. It's not ideal, but it gets me past the EF limitation. I hope that this article will help someone else that has the same problem.

    Read the article

  • MVVM Light V4 preview (BL0014) release notes

    - by Laurent Bugnion
    I just pushed to Codeplex an update to the MVVM Light source code. This is an early preview containing some of the features that I want to release later under the version 4. If you find these features useful for your project, please download the source code and build the assemblies. I will appreciate greatly any issue report. This version is labeled “V4.0.0.0/BL0014”. The “BL” string is an old habit that we used in my days at Siemens Building Technologies, called a “base level”. Somehow I like this way of incrementing the “base level” independently of any other consideration (such as alpha, beta, CTP, RTM etc) and continue to use it to tag my software versions. In Microsoft parlance, you could say that this is an early CTP of MVVM Light V4. Caveat The code is unit tested, but as we all know this does not mean that there are no bugs This code has not yet been used in production. Again, your help in testing this is greatly appreciated, so please report all bugs to me! What’s new? The following features have been implemented: Misc Various “maintenance work”. All WPF assemblies (that is .NET35 and .NET4) now allow partially trusted callers. It means that you can use them in am XBAP in partial trust mode. Testing Various test updates Added Windows Phone 7 unit tests Note: For Windows Phone 7, due to an issue in the unit test framework, not all tests can be executed. I had to isolate those tests for the moment. The error was reported to Microsoft. ViewModelBase The constructor is now public to allow serialization (especially useful on the phone to tombstone the state). ViewModelBase.MessengerInstance now returns Messenger.Default unless it is set explicitly. Previously, MessengerInstance was returning null, which was complicating the code. Two new ways to raise the PropertyChanged event have been added. See below for details. Messenger Updated the IMessenger interface with all public members from the Messenger class. Previously some members were missing. A new Unregister method is now available, allowing to unregister a recipient for a given token. RelayCommand RaiseCanExecuteChanged now acts the same in Windows Presentation Foundation than in Silverlight. In previous versions, I was relying on the CommandManager to raise the CanExecuteChanged event in WPF. However, it was found to be too unreliable, and a more direct way of raising the event was found preferable. See below for details. Raising the PropertyChanged event A very much requested update is now included: the ability to raise the PropertyChanged event in a viewmodel without using “magic strings”. Personally, I don’t see strings as a major issue, thanks to two features of the MVVM Light Toolkit: In the DEBUG configuration, every time that the RaisePropertyChanged method is called, the name of the property is checked against all existing properties of the viewmodel. Should the property name be misspelled (because of a typo or refactoring), an exception is thrown, notifying the developer that something is wrong. To avoid impacting the performance, this check is only made in DEBUG configuration, but that should be enough to warn the developers in case they miss a rename. The property name is defined as a public constant in the “mvvminpc” code snippet. This allows checking the property name from another class (for example if the PropertyChanged event is handled in the view). It also allows changing the property name in one place only. However, these two safeguards didn’t satisfy some of the users, who requested another way to raise the PropertyChanged event. In V4, you can now do the following: Using lambdas private int _myProperty; public int MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } _myProperty = value; RaisePropertyChanged(() => MyProperty); } } This raises the property changed event using a lambda expression instead of the property name. Light reflection is used to get the name. This supports Intellisense and can easily be refactored. You can also broadcast a PropertyChangedMessage using the Messenger.Default instance with: private int _myProperty; public int MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } var oldValue = _myProperty; _myProperty = value; RaisePropertyChanged(() => MyProperty, oldValue, value, true); } } Using no arguments When the RaisePropertyChanged method is called within a setter, you can also omit the property name altogether. This will fail if executed outside of the setter however. Also, to avoid confusion, there is no way to broadcast the PropertyChangedMessage using this syntax. private int _myProperty; public int MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } _myProperty = value; RaisePropertyChanged(); } } The old way Of course the “old” way is still supported, without broadcast: public const string MyPropertyName = "MyProperty"; private int _myProperty; public int MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } _myProperty = value; RaisePropertyChanged(MyPropertyName); } } And with broadcast: public const string MyPropertyName = "MyProperty"; private int _myProperty; public int MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } var oldValue = _myProperty; _myProperty = value; RaisePropertyChanged(MyPropertyName, oldValue, value, true); } } Performance considerations It is notorious that using reflection takes more time than using a string constant to get the property name. However, after measuring for all platforms, I found the differences to be very small. I will measure more and submit the results to the community for evaluation, because some of the results are actually surprising (for example, using the Messenger to broadcast a PropertyChangedMessage does not significantly increase the time taken to raise the PropertyChanged event and update the bindings). For now, I submit this code to you, and would be delighted to hear about your own results. Raising the CanExecuteChanged event manually In WPF, until now, the CanExecuteChanged event for a RelayCommand was raised automatically. Or rather, it was attempted to be raised, using a feature that is only available in WPF called the CommandManager. This class monitors the UI and when something occurs, it queries the state of the CanExecute delegate for all the commands. However, this proved unreliable for the purpose of MVVM: Since very often the value of the CanExecute delegate changes according to non-UI events (for example something changing in the viewmodel or in the model), raising the CanExecuteChanged event manually is necessary. In Silverlight, the CommandManager does not exist, so we had to raise the event manually from the start. This proved more reliable, and I now changed the WPF implementation of the RaiseCanExecuteChanged method to be the exact same in WPF than in Silverlight. For instance, if a command must be enabled when a string property is set to a value other than null or empty string, you can do: public MainViewModel() { MyTestCommand = new RelayCommand( () => DoSomething(), () => !string.IsNullOrEmpty(MyProperty)); } public const string MyPropertyName = "MyProperty"; private string _myProperty = string.Empty; public string MyProperty { get { return _myProperty; } set { if (_myProperty == value) { return; } _myProperty = value; RaisePropertyChanged(MyPropertyName); MyTestCommand.RaiseCanExecuteChanged(); } } Logo update I made a minor change to the logo: Some people found the lack of the word “light” (as in MVVM Light Toolkit) confusing. I thought it was cool, because the feather suggests the idea of lightness, however I can see the point. So I added the word “light” to the logo. Things should be quite clear now. What’s next? This is only the first of a series of releases that will bring MVVM Light to V4. In the next weeks, I will continue to add some very requested features and correct some issues in the code. I will probably continue this fashion of releasing the changes to the public as source code through Codeplex. I would be very interested to hear what you think of that, and to get feedback about the changes. Cheers, Laurent   Laurent Bugnion (GalaSoft) Subscribe | Twitter | Facebook | Flickr | LinkedIn

    Read the article

  • Use Extension Methods to find first and last day of the month

    - by Tim Hibbard
    A lot of reports work on data from last month.  It is a nice touch to have these dates pre-populated for your users.  Using extension methods, the code can look cleaner too. Extension Methods: public static class DateHelper { public static DateTime FirstOfTheMonth(this DateTime dt) { return new DateTime(dt.Year, dt.Month, 1); }   public static DateTime LastOfTheMonth(this DateTime dt) { return dt.FirstOfTheMonth().AddMonths(1).AddDays(-1); } } Consuming Code: void Prepopulate() { startDateBox.CurrentlySelectedDate = DateTime.Now.AddMonths(-1).FirstOfTheMonth(); endDateBox.CurrentlySelectedDate = DateTime.Now.AddMonths(-1).LastOfTheMonth(); }

    Read the article

< Previous Page | 196 197 198 199 200 201 202 203 204 205 206 207  | Next Page >