On your UrlReportServerProperty dependency property you need to provide a callback for when the property changes.
public static readonly DependencyProperty.Register("UrlReportServer", typeof(string), typeof(ReportViewer), new PropertyMetadata("", PropertyChangedCallback));
private static void PropertyChangedCallback(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
var ctrl = dependencyObject as ReportViewer;
if (ctrl != null)
{
if(dependencyPropertyChangedEventArgs.NewValue != null)
ctrl.ReportViewerLoad(dependencyPropertyChangedEventArgs.NewValue.ToString());
}
}
public void ReportViewerLoad(string url)
{
rptViewer.ProcessingMode = ProcessingMode.Remote;
rptViewer.ServerReport.ReportServerUrl = new Uri(url);
rptViewer.ServerReport.Refresh();
this.rptViewer.RefreshReport();
}