I am trying to update some of my UI elements instantly when user moves with the XamZoomBar. I've binded to the Range property. The binding is working just not instantly, I mean the property is updated only when the user finishes the operation (end of move, mouse up). I would like to have updated with all values, and display these value _during_ the user moves the zoombar. I've tried using UpdateSourceTrigger=PropertyChanged with no success.
Thx in advance
Justin, the way I achieved this was to use the ZoomChanged and ZoomChanging event.
Code looks something like this. I did this to make the zoom on the chart instant.:
private void XamZoombar_ZoomChanged(object sender, ZoomChangedEventArgs e) { HandleXamZoombarZoom(e.NewRange); } private void XamZoombar_ZoomChanging(object sender, ZoomChangeEventArgs e) { HandleXamZoombarZoom(e.NewRange); } void XamDataChart_WindowRectChanged(object sender, Infragistics.RectChangedEventArgs e) { if (IsZoombarChanging) return; if (this.price_xamZoomBar == null) return;
XamZoombar xamZoomBar = this.price_xamZoomBar; try { IsZoombarChanging = true; Range newZoombarRange = new Range { Minimum = e.NewRect.X, Maximum = e.NewRect.X + e.NewRect.Width }; xamZoomBar.Range = newZoombarRange; } finally { IsZoombarChanging = false; } } bool IsZoombarChanging = false; private void HandleXamZoombarZoom(Range zoombarRange) { if (this.price_XamDataChart == null) return; XamDataChart xamDataChart = this.price_XamDataChart; if (IsZoombarChanging) return; try { IsZoombarChanging = true; xamDataChart.WindowRect = new Rect { Y = 0, Height = 1, X = zoombarRange.Minimum, Width = (zoombarRange.Maximum - zoombarRange.Minimum) }; } finally { IsZoombarChanging = false; } }