+1 for live templates. I like that it u can use a convention to name
ur fields with the camelcase version of ur prop name.
The other thing consider is using an expression for the
propertychanged method instead of passing a string. That makes
refactoring easier.
RaisePropertyChanged(()=>LastName);
Sent from my iPhone
On 28/05/2010, at 6:19 PM, Stephen Price <[email protected]>
wrote:
+1 Resharper. That's exactly my process for creating those
properties. One day I'll actually write a propOp live template to do
the rest of it for me. I think that everytime I create a property...
On Fri, May 28, 2010 at 2:32 PM, Steven Nagy
<[email protected]> wrote:
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] | B: azure.snagy.name
From: [email protected] [mailto:ozsilverlight-
[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] | B: azure.snagy.name
From: [email protected] [mailto:ozsilverlight-
[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 an
d will require extra research time (but I see others have done it al
ready).
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
_______________________________________________
ozsilverlight mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight
_______________________________________________
ozsilverlight mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozsilverlight