My First Office 2007 Blog Post

I’ve just installed Office 2007, and I am using Word 2007 to write and publish my first blog entry. Since I don’t have a headset handy I will have to type this in, but I intend to get speech-to-text working so I can blog on the move!!

It looks really pretty, and I am already in love with the Outlook to-do bar, and the new toolbars really do make it so much easier to find the function you are looking for.

But my favourite thing is OneNote 2007, with the OneNote mobile feature, you can make voice recordings, which will automatically sync up to OneNote when you dock, and are then searchable. Yes, I did mean that, voice recordings are searchable!!!

Anyway, off to discover even more…

Posted in IT. 1 Comment »


Just been to see the Da Vinci Code and it is a surprisingly good adaptation.  It’s not gonna win any oscars, and it is by no means the best film I’ve ever seen, but just like the book, it keeps you interested, and since it’s been a while since I read at (and the fact that all his books are the same) at times I couldn’t remember what was coming next.
There were some copouts, like the replacement of the British Library with google, but altogether a good yarn, and in no way in need of a ‘health warning’ or a ‘Fiction, Fiction, Fiction’ sticker.
Possibly the best thing about the movie is Ian McKellen, and that’s purely for his comment on US Today!

What WPF is about, in 9 lines.

I came across this sample as an example of how powerful WPF is. 

<Window xmlns="; xmlns:x="; Title="DropShadow Inking Test">
    <Grid Background="Goldenrod">
        <Canvas Name="dropshadowBackplane" RenderTransform="1,0,0,1,3,3">
                <VisualBrush Visual="{Binding ElementName=inkCanvas}" Opacity="0.50" />
        <InkCanvas Name ="inkCanvas" Background ="Transparent" />
    </Grid >

In 9 lines of XAML you get a canvas that you can ink on to with both a stylus and mouse and it has a drop shadow.


The Most Popular Man In The World

Well, at least on MSN Spaces anyway.
I’ve been wondering why people keep adding me to their MSN Messenger contacts list, and know I think I know.  If you go to and click on ‘Advanced People Search’ and select ‘Male’ as a filter.  When you search on these criteria, I, me, your’s truely appears at the top.
Quite why I have no idea, and frankly it’s a bit scary, whilst at the same time stoking my ego.
Anyway, just in case this oddity changes I’ve added a screenshot of the search results page…
Posted in IT. 1 Comment »

Trackback Spam

I’ve disabled trackbacks because I’ve been getting huge amounts of trackback spam of late.  It’s not really a problem since no one has actually trackedback to an entry I’ve made yet.
I’m obviously not interesting enough…

Odds and Sods

Some links to some cool stuff happening soon
First off is a MSDN Tech Briefing on WinFX.  It’s an overview so won’t be very detailed I expect, but some of the product team are apparently coming over from Redmond so this should be an excellent chance to ask questions.
Next is Developer, Developer. Developer at the Microsoft Campus in Reading, UK.  This is always a great day register early because places go fast.  This is happening on Saturday June 3rd.
Third up is an other CodeMaster Challenge.  There’s a $50,000 first prize up for grabs, so submit your groovy Windows Vista application now!!

INotifyCollectionChanged with collections of collections

I’ve been struggling with consuming the INotifyCollectionChanged and INotifyPropertyChanged events in my code.  They were obviously doing their thing because the UI was updating to interaction changes.

It turned out to be a mix of not having Two-Way binding enabled and how I had set up my collection.

The data binding was hiding the issue I had with the collection, so thanks to Valentin Iliescu and Yves Dolce for helping me sort that out.

It would appear that you have to wrap your sub collections in a class, rather than just declaring an ObservableCollection<T> and adding the event handler directly.


So you have to do this

public class MyCollection : ObservableCollection<MyType>


  public MyCollection()


    this.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);



public class EnclosingType


  private MyCollection myCollection;

  public EnclosingType ()
    myCollection = new MyCollection ();


Rather than doing this in your enclosing type


public class EnclosingType


  private ObservableCollection< MyType>() myCollection;

  public EnclosingType ()
    myCollection = new ObservableCollection< MyType>();
    myCollection.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCollectionChanged);


This doesn’t seem the correct behaviour and I’d appreciate anyone’s comment on it.