I might add, that even if you don't want to introduce Post# then the simple 
base class + Resharper combination is pretty good.
For example, your base class has some methods for raising property changed 
events. Then your ViewModel needs a property for first name.
You use the "prop" code snippet, this expands out very quickly to:

public string FirstName { get; set; }

Then ALT+Enter with Resharper lets you convert to backing field in total 3 
keystrokes:

        private string _firstName;
        public string FirstName
        {
            get { return _firstName; }
            set { _firstName = value; }
        }

Then a single call to property changed:

        private string _firstName;
        public string FirstName
        {
            get { return _firstName; }
            set { _firstName = value; PropertyChanged("FirstName"); }
        }

Not so bad, very minimal keystrokes.
Steven Nagy
Readify | Senior Developer
M: +61 404 044 513 | E: [email protected]<sip:[email protected]> | 
B: azure.snagy.name<http://azure.snagy.name/>

From: [email protected] 
[mailto:[email protected]] On Behalf Of Steven Nagy
Sent: Friday, 28 May 2010 4:25 PM
To: ozSilverlight
Subject: RE: Lots of bind/notify classes

Check out Post#:
http://www.sharpcrafters.com/postsharp/documentation/getting-started

Example:
http://ruskin-dantra.blogspot.com/2009/03/inotifypropertychanged-made-easier.html
Not sure if this works in Silverlight land though.
Steven Nagy
Readify | Senior Developer
M: +61 404 044 513 | E: [email protected]<sip:[email protected]> | 
B: azure.snagy.name<http://azure.snagy.name/>

From: [email protected] 
[mailto:[email protected]] On Behalf Of Greg Keogh
Sent: Friday, 28 May 2010 4:18 PM
To: 'ozSilverlight'
Subject: Lots of bind/notify classes

Look Dave, I can see you're really upset about this. I honestly think you ought 
to sit down calmly, take a stress pill, and think things over - HAL (2001)

I was wondering if anyone has found a nice way of creating/managing lots of 
classes that are suitable for binding and implement INotifyPropertyChanged. As 
you know, you have to keep coding properties like this:

public string CompanyName
{
    get {return this.companyNameValue;}

    set
    {
        if (value != this.companyNameValue)
        {
            this.companyNameValue = value;
            NotifyPropertyChanged("CompanyName");
        }
    }
}

You can create a  simple base class to factor out the event, but not much else, 
as there is no way I know of to intercept any arbitrary property setter and add 
custom processing. Is that right?! Coding the above skeleton dozens or hundreds 
of times gets tedious and I'm hoping there's a better way. I did consider using 
a T4 generator to spit out the classes, but that's an obtuse way around the 
problem and will require extra research time (but I see others have done it 
already).

I have dozens of existing classes with dozens of properties and I'd like to use 
them for binding, but I'd have to expand every property to be like the same 
above, which would be hell.

Greg

_______________________________________________
ozsilverlight mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight

Reply via email to