Posts on C#

  1. WPF Converter: CaseConverter

    Case Converter was made when I wanted the text to display in a WPF UI in upper case. Probably not the best class name, but anyway. To get the code and install read on. Make any UI string uppercase. Once you have registered the resource and created the class just use the converter in the element you want converted.

  2. When is true not true?

    When you look at true stored in the .Net framework. While playing with Pex I found out a interesting fact that the bool is a byte in the MSIL. Which means that a bool could be equal to anything on the byte range… Now this would require you to go out of your way and create unsafe code blocks to do this. Why you would do this… No ideas :) Its marked as a no-fix which is not surprising as I would not fix it either because as they say, if you know about this and you use it then you are on your own.

  3. Getting a Outlook MailItem from a Ribbon Event

    You may find this code block handy: [csharp] /// /// Gets the mail item selected in the explorer view if one is selected or instance if that is the view active. /// /// The instance containing the event data. /// A Outlook.MailItem for the mail being viewed. private Outlook.MailItem GetMailItem(RibbonControlEventArgs e) { // Check to see if a item is select in explorer or we are in inspector. if (e.Control.Context is Outlook.Inspector) { Outlook.Inspector inspector = (Outlook.Inspector)e.Control.Context; if (inspector.CurrentItem is Outlook.MailItem) { return inspector.CurrentItem as Outlook.MailItem; } } if (e.Control.Context is Outlook.Explorer) { Outlook.Explorer explorer = (Outlook.Explorer)e.Control.Context; Outlook.Selection selectedItems = explorer.Selection; if (selectedItems.Count != 1) { return null; } if (selectedItems[1] is Outlook.MailItem) { return selectedItems[1] as Outlook.MailItem; } } return null; } [/csharp]