Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Linq.Expressions;
- using System.Reflection;
- using System.Text;
- using Revolucent.Dasso.Core;
- namespace Revolucent.Dasso.Program.Binding
- {
- static class Binding
- {
- public static void SetBinding<S, P>(this S source, Expression<Func<P>> sourceGetterExpression, params Action<P>[] targetSetters)
- where S : INotifyPropertyChanged
- {
- var sourceGetter = sourceGetterExpression.Compile();
- var memberExpression = (MemberExpression)sourceGetterExpression.Body;
- var propertyName = memberExpression.Member.Name;
- source.PropertyChanged += (sender, e) =>
- {
- if (e.PropertyName != propertyName)
- return;
- targetSetters.ForEach(setter => setter(sourceGetter()));
- };
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement