//protected override SizeRequest OnSizeRequest(double widthConstraint, double heightConstraint) //{ // return new SizeRequest(new Size(widthConstraint, heightConstraint)); //} private static void XmlSourceChanged(BindableObject obj, string oldValue, string newValue) { NoteViewer viewer = obj as NoteViewer; if (string.IsNullOrWhiteSpace(newValue)) { if (!string.IsNullOrWhiteSpace(oldValue)) { viewer.Children.Clear(); } return; } XDocument xmlDocument = XDocument.Parse(newValue); //Apply transformations: if (viewer.XmlTransformations != null) { foreach (var transformation in viewer.XmlTransformations) { xmlDocument = transformation.Parse(xmlDocument); } } MusicXmlParser parser = new MusicXmlParser(); var score = parser.Parse(xmlDocument); score.MeasureInvalidated -= viewer.Score_MeasureInvalidated; viewer.RenderOnCanvas(score); score.MeasureInvalidated += viewer.Score_MeasureInvalidated; }
private static void ScoreSourceChanged(BindableObject obj, Score oldValue, Score newValue) { NoteViewer viewer = obj as NoteViewer; if (oldValue != null) { oldValue.MeasureInvalidated -= viewer.Score_MeasureInvalidated; } if (newValue == null) { return; } newValue.MeasureInvalidated -= viewer.Score_MeasureInvalidated; viewer.RenderOnCanvas(newValue); newValue.MeasureInvalidated += viewer.Score_MeasureInvalidated; }