public CharItem(Workspace_Model ws, ITextToPathService service) { // Use propery to init value here: if (IsInDesignMode) { //Add design time demo data init here. These will not execute in runtime. } else { WireEvents(ws, service); } }
public void WireEvents(Workspace_Model ws, ITextToPathService service) { ws.GetValueContainer(x => x.FontSize) .GetNullObservable() .Merge( Observable.Range(0, 1).Select(i => (object)null) ) .Subscribe ( e => FontSize = ws.FontSize ) .DisposeWith(ws); ws.GetValueContainer(x => x.SelectedFont) .GetNullObservable() .Merge( Observable.Range(0, 1).Select(i => (object)null) ) .Subscribe ( e => TextfaceString = ws.SelectedFont ) .DisposeWith(ws); GetValueContainer(x => x.FontSize) .GetNullObservable() .Merge( GetValueContainer(x => x.DisplayLocationX) .GetNullObservable() ) .Merge( GetValueContainer(x => x.DisplayLocationY) .GetNullObservable() ) .Merge( Observable.Range(0, 1).Select(i => (object)null) ) .Subscribe ( _ => { LocationXPixel = FontSize * DisplayLocationX; LocationYPixel = FontSize * DisplayLocationY; } ).DisposeWith(ws); GetValueContainer(x => x.FontSize) .GetNullObservable() .Merge( GetValueContainer(x => x.DisplayZoomX) .GetNullObservable() ) .Merge( GetValueContainer(x => x.DisplayZoomY) .GetNullObservable() ) .Merge( GetValueContainer(x => x.DisplayLocationX) .GetNullObservable() ) .Merge( GetValueContainer(x => x.DisplayLocationY) .GetNullObservable() ) .Merge( GetValueContainer(x => x.MaskRetanglePercentLeft) .GetNullObservable() ) .Merge( GetValueContainer(x => x.MaskRetanglePercentRight) .GetNullObservable() ) .Merge( GetValueContainer(x => x.MaskRetanglePercentTop) .GetNullObservable() ) .Merge( GetValueContainer(x => x.MaskRetanglePercentBottom) .GetNullObservable() ) .Merge( GetValueContainer(x => x.TextfaceString) .GetNullObservable() ) .Merge( GetValueContainer(x => x.CharToDisplay) .GetNullObservable() ) .Merge( GetValueContainer(x => x.DisplayLocationY) .GetNullObservable() ) .Subscribe ( e => { var masks = new Thickness ( FontSize * MaskRetanglePercentLeft, FontSize * MaskRetanglePercentTop, FontSize * MaskRetanglePercentRight, FontSize * MaskRetanglePercentBottom ); PathData = service.Text2Path(this.CharToDisplay.ToString(), "", true, TextfaceString, (int)FontSize, masks); } ).DisposeWith(ws); }