public static Tuple <ValueChangedRich <DomainT>, ValueChangedSimple <ViewT> > BindReadWriteAndInitialize <WidgetT, ViewT, DomainT>(
            this IReadWriteValueView <WidgetT, ViewT> view, IReadWriteValue <DomainT> domain,
            Func <DomainT, ViewT> convertFromDomain, Func <ViewT, DomainT> convertToDomain)
        {
            var readHandler  = view.BindRead(domain, convertFromDomain);
            var writeHandler = view.BindWrite(domain, convertToDomain);

            readHandler(domain, domain.Value, domain.Value, domain.Errors, false);
            Logger.Debug(typeof(ValueViewExtensions), "BindReadWriteAndInitialize current value = {0} errors={1}", domain.Value, domain.Errors.PrettyToString());
            return(new Tuple <ValueChangedRich <DomainT>, ValueChangedSimple <ViewT> >(readHandler, writeHandler));
        }
 public static ValueChangedSimple <T> BindWrite <WidgetT, T>(
     this IReadWriteValueView <WidgetT, T> view, IReadWriteValue <T> domain)
 {
     return(view.BindWrite(domain, x => x));
 }